﻿// --------------------------------------------------------------------
// http://userscripts.org/scripts/show/73258
// --------------------------------------------------------------------

function getMoCheckVersion() {
	return "2.0.1";
}

function getAuthor() {
	var hrefStr = '';
	switch(window.location.hostname.substr(0,window.location.hostname.search(/\./))) {
		case 'pl1':
		case 'pl9':
		case 'pl10':
		case 'pl11':
		case 'pl12':
		case 'pl13':
		case 'pl14':
			hrefStr = 'javascript:AjaxWindow.show(\'profile\',{char_id:845806},\'845806\');';
			win_op = '';
			new_ver = true; // w1.29
			break;
		case 'w1':
			hrefStr = 'javascript:AjaxWindow.show(\'profile\',{char_id:8580},\'8580\');';
			win_op = '';
			new_ver = true; // w1.29
			break;
		default:
			hrefStr = 'http://userscripts.org/users/128276';
			win_op = 'target=\'_blank\'';
			new_ver = true; // w1.29
	}
	return '&nbsp;Autor GUI: <a href=\"' + hrefStr + '\" style=\"color:yellow\"' + win_op + '>Darius II</a>';
}

// ustawienia wstępne
var enable_weststats = false;  // nie działa
var enable_westinsider = false; // nie działa
var enable_westcalc = false; // nie działa
var enable_fortsmaps = true; // true/false
var enable_westforts = false; // nie działa
var enable_motivation_duel = true; //
var enable_forum = false;  // nie działa


var ac_world = window.location.hostname.substr(0,window.location.hostname.search(/\./));
var prefix_world = ac_world;
if (ac_world == 'w1') {
	ac_world = 'zz1';
	prefix_world = 'www';
}
var ac_region = window.location.host.substr(0,2);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                              //
//    Jak włączyć eksport ekwipunku, umiejętności ns dwoje konto do  West Stats (domyślnie wyłączone).                          //
//                                                                                                                              //
//  Aby włączyć przycisk i umożliwić, eksport do profilu, należy umieścić swoje dane w skrypcie.                                //
//                                                                                                                              //
//  1. Znajdź [//var weststats_exportID = '&ui=------&up=----------------------------------------'] poniżej tego pola           //
//  2. Idź na http://www.weststats.com i zaloguj się.                                                                           //
//  3. Natępnie idź http://www.weststats.com/User_import/ i najdź kod z pkt 1.                                                  //
//  4. usuń "//" pomiędzy '' wpisz wartoś podaną ze strony powyżej,                                                             //
//      '&ui=------&up=----------------------------------------'  uzupełnij "-" danymi z kodu na weststats.                     //
//     (Tak, to jest dosyć trudne bo po kliknięciu na okno zaznacza się cały kod,                                               //
//      niestety kod zawiera " i ' dlatego całości nie można wkleić :/ .                                                        //
//  5. Jeżeli udało się to wpisać, no to gratulację, możesz teraz odswieżyć strone z TW i cieszyć się nowym przyciskiem :D      //
//                                                                                                                              //
//  *Kod się różni dla każdego użytkownika weststats, dlatego nie mogłem osobiście jego wpisać.                                 //
//                                                                                                                              //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var weststats_exportID = ''; //

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) {return;}
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}	


/***** Mapy fortów *****/
if ( enable_fortsmaps ) {
	var fortsmaps_link = document.createElement("div");
	fortsmaps_link.id = "fortsmaps_link";
	fortsmaps_link.innerHTML = "<img class=\"TWF_fortsmaps\" src=\"images/transparent.png\" width=\"128\" height=\"25\" usemap=\"#map_mapy\" class=\"TWF_fortsmaps\" /><map name=\"map_mapy\" class=\"TWF_fortsmaps\"><area shape=\"rect\" coords=\"32,0,65,25\" href=\"http://i757.photobucket.com/albums/xx211/Darius_II/forty/fort_duzy.jpg\" alt=\"duży fort\" target=\"_blank\" title=\"Duży fort\" class=\"TWF_fortsmaps\" /\"><area shape=\"rect\" coords=\"65,0,94,25\" href=\"http://i757.photobucket.com/albums/xx211/Darius_II/forty/fort_sredni.jpg\" alt=\"średni fort\" target=\"_blank\" title=\"Średni fort\" class=\"TWF_fortsmaps\" /><area shape=\"rect\" coords=\"94,0,120,25\" href=\"http://i757.photobucket.com/albums/xx211/Darius_II/forty/fort_maly.jpg\" alt=\"mały fort\" target=\"_blank\" title=\"Mały fort\" class=\"TWF_fortsmaps\" /></map>";
}

/***** Statystyki bitew *****/
if ( enable_westforts ) {
	var westforts_link = document.createElement("div");
	westforts_link.id = "westforts_link";
	westforts_link.innerHTML = "<a id=\"TWF_westforts_link\" href=\"http://www.westforts.com/"+ac_world+"/battles\" onClick=\"\" target=\"_blank\"></a>";
}

/***** Weststats *****/
if ( enable_weststats ) {
	if ( typeof(weststats_exportID) != "undefined" || weststats_exportID == '' ) {
		var weststats_script = document.createElement("div");
		weststats_script.id = "weststats_script";
		weststats_script.innerHTML = "<a id=\"TWET_weststats_export\" href=\"javascript:var wsp_auth = '"+ weststats_exportID +"';var wsp_url = 'www.weststats.com';var remoteScript=new Element('script', {'type': 'text/javascript', 'src': 'http://www.weststats.com/js/import_all.js?1247793097'});document.body.appendChild(remoteScript);void(0);\"></a>";
	}
	
	var weststats_link = document.createElement("div");
	weststats_link.id = "weststats_link";
	weststats_link.innerHTML = "<a id=\"TWF_weststats_link\" href=\"http://"+ac_region+".weststats.com/?change_world="+ac_world+"\" onClick=\"\" target=\"_blank\"></a>";

	switch(ac_region){
	case "en":
		ac_region="www";
		break;
	}	

	var weststats_link = document.createElement("div");
	weststats_link.id = "weststats_link";
	// Original link:
	//weststats_link.innerHTML = '<a id="TWET_weststats_link" href="http://'+ actual_region + '.weststats.com/?change_world='+actual_world+'" target="_blank"></a>';
	// Modified link, linking to the job calculator page directly:
	weststats_link.innerHTML = '<a id="TWET_weststats_link" href="http://'+ ac_region + '.weststats.com/Jobs/?type=personal&skill=none&bonus=best&best=equip&itemsetcalc=on&change_world='+ac_world+'" target="_blank"></a>';
}

/***** forum w nowym oknie *****/
if (enable_forum) {
	var menu_townforum_ext = document.createElement("div");
	menu_townforum_ext.id = "menu_townforum_ext";
	menu_townforum_ext.innerHTML = "<a id=\"TWF_menu_townforum_ext\" href=\"forum.php\" onClick=\"\" target=\"_blank\"></a>";
}

/***** New buttons *****/
var menu_settings = document.getElementById('menu_settings');
if (menu_settings) {
	if ( enable_weststats ) {
		menu_settings.parentNode.insertBefore(weststats_link, menu_settings.nextSibling);
	}
	if ( enable_fortsmaps ) {
		menu_settings.parentNode.insertBefore(fortsmaps_link, menu_settings.nextSibling);
	}
	if ( enable_westforts ) {
		menu_settings.parentNode.insertBefore(westforts_link, menu_settings.nextSibling);
	}
};

var menu_work = document.getElementById('menu_work');
if ( enable_weststats &&  (typeof(weststats_exportID) != "undefined" || weststats_exportID == '' )) {
	if (menu_work) {
		menu_work.parentNode.insertBefore(weststats_script, menu_work.nextSibling);
	}
}

//var menu_townforum = document.getElementById('menu_townforum');
//if (menu_townforum) {
//	menu_townforum.parentNode.insertBefore(menu_townforum_ext, menu_townforum.nextSibling);
//}

if ( enable_motivation_duel ) {
	document.getElementById( "windows" ).addEventListener( "DOMNodeInserted", nodeInserted, false );
}

function nodeInserted( event ) {
    if ( document.querySelector( 'div.saloon_duel_layer' ) ) {
        var motivation = document.querySelector( "div.bar_perc" ).innerHTML;
        motivation =  ( 0 + motivation.substring(0, (motivation.length - 1) ) ) / 100;
        var duel_elements = document.querySelector( "table.saloon_duel_table" ).getElementsByTagName( "tr" );
        for( i = 1; i < duel_elements.length; i++ )         {
            var exp = duel_elements[ i ].childNodes[5].innerHTML;
            if( exp.length <= 5 ) {
                var xp = (0 + exp) * motivation;
                duel_elements[ i ].childNodes[5].innerHTML += "<span style='color:#990000; font-size:.8em; vertical-align:middle'> (" + xp.toFixed(0)  + ") </span>";
            }
        }
    }
}


// GUI Hacks
addGlobalStyle('body {padding:0; width:100%; height:100%; overflow:hidden;}');
addGlobalStyle('#fade_div {width:100%; height:100%;}');
addGlobalStyle('#main_container {width:100%; position:absolute; height:100%; margin:0; top:0; left:0; background:none; padding:0; z-index:auto;}');
addGlobalStyle('#footer {width:100%; position:absolute; margin:0; top:0px; left:0; z-index:5;}');
addGlobalStyle('#footer_menu_left {z-index:6; margin-top: -5px!important;}');
addGlobalStyle('#footer_menu_right {z-index:6; margin-top: -5px!important;}');
addGlobalStyle('#head_container {width:100%; padding:0px; background:none;}');
addGlobalStyle('#head_background {width:100%; position:absolute; height:auto; z-index:4; background:transparent;}');
addGlobalStyle('#border_cap { position:absolute; background:transparent; left:50%; width:400px; margin-left:-200px; height:27px; z-index:6; padding:0; top:11px; font-size:1px; display:none; }');
addGlobalStyle('#abdorments {display:none;}');
addGlobalStyle('#left_menu {left:-20px; top:-15px; z-index:13; background:transparent;}');
addGlobalStyle('#right_menu {right:-20px; top:-15px; z-index:13; background:transparent;}');
addGlobalStyle('#menus {z-index:12;}');
addGlobalStyle('#map_scroll_bottom {left:50%; margin-left:-10px; bottom:0px; top:auto; z-index:7; position:absolute;}');
addGlobalStyle('#map_scroll_top {left:50%; margin-left:-10px; top:0px; z-index:7; position:absolute;}'); // top:130;
addGlobalStyle('#map_scroll_left {left:0; top:0px; z-index:7; position:absolute;}');
addGlobalStyle('#map_scroll_right {right:0; top:0px; z-index:7; position:absolute;}');
addGlobalStyle('#window_bar {z-index:6; width:auto; bottom:0px; left:0px; margin:0px; height:100%; position:absolute;}');
addGlobalStyle('#forum_list {margin-top:10px;}');
addGlobalStyle('.bottomleftcurve, .bottomrightcurve{display:none; top: 0px; height:0px;');
addGlobalStyle('#shadow_left_top, #shadow_right_top,#shadow_right_wing,#shadow_left_wing,#shadow_right_wing_bottom,#shadow_left_wing_bottom,#shadow_left_corner,#shadow_right_corner { background:transparent; position:absolute; }');
addGlobalStyle('#shadow_left_side,#shadow_right_side { background:transparent; position:absolute; top:0px; width:110px; height:1px; }');
addGlobalStyle('#shadow_top,#shadow_bottom { background:transparent; position:absolute; width:100%; height:27px; top:0; left:0; }');
addGlobalStyle('#shadow_bottom { width:100%; height:5px; top:5px; background-position:bottom; left:0; }');
addGlobalStyle('#head_title { width:264px; height:57px; position:absolute; left:50%; margin-left:-13/2px; background:transparent;}');
addGlobalStyle('#abdorment_left { display:none; }');
addGlobalStyle('#abdorment_middle { display:none; }');
addGlobalStyle('#abdorment_right { display:none; }');
addGlobalStyle('#windows #window_inventory { position:absolute; top:15px; }');
addGlobalStyle('.window { position:absolute; top:15px; }');
//addGlobalStyle('#window_forum { position:absolute; top:15px; }');
addGlobalStyle('#main_sizer { padding-top:0px; }');



// Map positioning
addGlobalStyle('#main_container_border_left { position:absolute; margin:0; bottom: 0px; left:0px; padding:0; height:0px; background:transparent;}');
addGlobalStyle('#main_container_border_right { position:absolute; margin:0; bottom: 0px; left:0px; padding:0; height:0px; background:transparent;}');
addGlobalStyle('#main_container_position { position:absolute; width:100%; z-index:1; top:0px; left:0px; bottom:0px; height:100%;}');
addGlobalStyle('#main_container { position:relative; text-align:left; background-repeat:repeat-x; padding-top:0px; bottom:0px; top:0px; margin-left:0px; margin-right:0px;  }');
addGlobalStyle('#head_container { text-align:left; padding-top:0px; z-index:5; background:none;}');
addGlobalStyle('#map_border_bottom { position:absolute; width:100%; height:11px; z-index: 47; font-size:1px; margin-left: 0px; margin-top: 0px; left:0px; top:5px; }');
//addGlobalStyle('#map_border_bottom_sizer { display:none!important; }');
addGlobalStyle('#map_border_bottom_sizer { position:absolute; width:200px; z-index:15 ; height:11px; font-size:1px; left:50%; margin-left:-100px; bottom:0px; margin-top:-132px; }'); // z-index:48;
addGlobalStyle('#map_wrapper {top:0px; left:-50px; right:-50px; bottom:-25px; margin-bottom:100%; position:absolute; width:auto; height:auto; }');
addGlobalStyle('#map {width:100%; height:100%; top:0px; bottom:-80px; right:20px;}');
addGlobalStyle('#map_mover {width:100%; height:100%; z-index:5;}');
addGlobalStyle('#map_arrows {width:100%; position:absolute; z-index:8;}'); // z-index:8; display:none; height:100%;
addGlobalStyle('#map_scroll_left {left:47%; top:55px!important; }');
addGlobalStyle('#map_scroll_right {right:47%; top:55px!important; }');
addGlobalStyle('#map_scroll_top {top:30px; }');
addGlobalStyle('#map_scroll_bottom {top:80px!important; }');
addGlobalStyle('#map_place {top:0px; left:0px; right:0px; bottom:0px; padding:0; margin:0; position:absolute; width:auto; height:auto;}');
addGlobalStyle('#level_box {top:56px;}');
addGlobalStyle('#health_bar, #energy_bar, #experience_bar {margin-left:-2px;}');
addGlobalStyle('#health_bar {top:22px;}');
addGlobalStyle('#energy_bar {top:40px;}');
addGlobalStyle('#experience_bar {top:58px;}');


// Player / Job Information
addGlobalStyle('#workbar_left { position:absolute; left:125px; top:70px; background:transparent; display:block; margin-top:0px!important; }');
addGlobalStyle('#workbar_right { position:absolute; right:125px; top:70px; background:transparent; display:block; margin-top:0px; }');
//addGlobalStyle('#workbar_right { display:none; }');
//addGlobalStyle('#wb_task_0, #wb_task_1, #wb_task_2, #wb_task_3, #wb_task_4, #wb_task_5, #wb_task_6, #wb_task_7 { float:right; background:transparent; margin-left:-100px; margin-top:30px; width:170px; }');
addGlobalStyle('#wb_task_0, #wb_task_1, #wb_task_2, #wb_task_3, #wb_task_4, #wb_task_5, #wb_task_6, #wb_task_7 { float:left; opacity:0.5; filter:alpha(opacity=50); background:url(http://i757.photobucket.com/albums/xx211/Darius_II/tw/workbar_item_background.png) no-repeat 0px 32px; }');
addGlobalStyle('#wb_task_0, #wb_task_1, #wb_task_2, #wb_task_3 { margin-left:0px; }');
addGlobalStyle('#wb_task_4, #wb_task_5, #wb_task_6, #wb_task_7 { margin-right:0px; }');
addGlobalStyle('.wb_taskbar { height:75px; width:auto; }');
addGlobalStyle('.workbar_top { height:75px!important; padding-left:auto; background:transparent; }');
addGlobalStyle('.wb_taskbar wb_premium .workbar_top { height:75px; padding-left:auto; background:transparent; }');
addGlobalStyle('#workbar_right.wb_premium .workbar_top { background:transparent; height:75px; }');
addGlobalStyle('.wb_premium { margin-top:0px!important; margin-right:0px; }');
	//addGlobalStyle('#avatar { position:absolute; margin-left: -2px; margin-right: -50px; margin-top: -2px; margin-bottom: -2px; width:175px; left:70px; top:3px; height:90px; font-size:13px; font-weight:bold; cursor: default; background-color:#cbb784 !important; border:1px solid #000000; }');
addGlobalStyle('#avatar { position:absolute; margin-left: -2px; margin-right: -50px; margin-top: -2px; margin-bottom: -2px; width:200px; left:70px; top:3px; height:89px; font-size:13px; font-weight:bold; cursor: default; }');
addGlobalStyle('#character_info { position:relative; margin: 2px 65px 0 55px; z-index:20; opacity:0.7; filter:alpha(opacity=70);}');
addGlobalStyle('#wb_buy_pa { display:none; }');
addGlobalStyle('#workbar_right .workbar_top { background:transparent; }');
addGlobalStyle('#current_task_box { height:auto; opacity:0.8; filter:alpha(opacity=80); z-index:5; top:5px;}');
addGlobalStyle('#current_task_box_text a { color: yellow; ');
//addGlobalStyle('#task_time, #cash, #deposit { right:188px; }');



// Chat Window
addGlobalStyle('#chatwindow { position:relative; height:10px; overflow:hidden; margin-left:6px; margin-right:6px; margin-top:-120px; bottom:0px; z-index:15; }');
//addGlobalStyle('#chatwindow_handlegrip { position:absolute; z-index:0; height:100%; width:100%; }');
//addGlobalStyle('#chatwindow_clientarea { height:100px!important; }');
//addGlobalStyle('#chatwindow_contactsarea { height:100px!important; }');


// Fort Select Window
addGlobalStyle('#scroll_to_fort_list{top: 180px !important; left: 162px !important; z-index:55;}');
addGlobalStyle('#scroll_to_fort_list * { margin: 0; padding: 0; background-color:#cbb784; }');
addGlobalStyle('#scroll_to_fort_list ul li.fort_list_head { border-bottom: 1px solid #000000; background-color:#cbb784; }');
addGlobalStyle('#scroll_to_fort_list ul li { width: 142px; margin: 1px 4px; background-color:#cbb784; }');
addGlobalStyle('#scroll_to_fort_list ul li.fort_list_spacer { width: 150px; margin: 6px 0 4px 0; background-color:#cbb784; }');


// Minimap Fix
addGlobalStyle('#minimap_container { z-index:60; }');


// Server Time / Game Info buttons Fix
addGlobalStyle('.main_footnote { float:right; position:relative; background:url(/images/main/bottom_slide_repeatx.png) repeat-x bottom; height:14px; margin-right:6px; margin-left:6px; top: 12px; cursor:default; }');


// Server Time / Game Info buttons Fix
addGlobalStyle('.main_footnote { float:right; position:relative; background:url(/images/main/bottom_slide_repeatx.png) repeat-x bottom; height:14px; margin-right:6px; margin-left:6px; top: 12px; cursor:default; }');

// Forum
//addGlobalStyle('#window_forum { top:15px }');

// inne okna
addGlobalStyle('#addressbook { margin-left:-30px; }');
addGlobalStyle('#window_tw_help_notepad, #window_tw_help_edit_note, #window_tw_help_notepad_note { left:140px; }');

// mapki fortów
addGlobalStyle('#fortsmaps_link { background:url(http://i757.photobucket.com/albums/xx211/Darius_II/tw/mapy.png); }');
addGlobalStyle('.TWF_fortsmaps:hover {background:url(/images/main/menu_highlight.png) no-repeat scroll right 0 transparent; }');

// westats
addGlobalStyle('#weststats_link { background:url(http://i757.photobucket.com/albums/xx211/Darius_II/tw/weststats.png); }');

// staty fortów
addGlobalStyle('#westforts_link {  background:url(http://i757.photobucket.com/albums/xx211/Darius_II/tw/statforts.png); }');

addGlobalStyle('#weststats_script  { background:url(http://i757.photobucket.com/albums/xx211/Darius_II/tw/ex-weststats.png); }');




var footer = $('footer');
var ntf=footer.getNext();
ntf.setStyles({
'left':'0px',
'marginLeft':'0px',
'top':'0px',
'width':'100%',
'height':'auto',
'marginTop':'-50px'
});


$('footer_menu_right').removeClass('bottomrightcurve');
$('footer_menu_left').removeClass('bottomleftcurve');

$('footer_menu_left').setStyles({
'margin-top':'5px',
'padding-top':'0px',
'left':'35px',
'right':'',
'position':'absolute',
'z-index':'50'
});
$('footer_menu_right').setStyles({
'margin-top':'5px',
'padding-top':'0px',
'left':'',
'right':'35px',
'position':'absolute',
'z-index':'50'
});

$('footer_menu_left').removeClass('homeless');


// ~~~~~~~~~~~~~~
// Left Footer buttons
// ~~~~~~~~~~~~~~
addGlobalStyle('#footer_menu_left a img, #footer_menu_right a img { background-image:url(http://i757.photobucket.com/albums/xx211/Darius_II/tw/symbols.png);}');
addGlobalStyle('#footer_menu_left{position:absolute;width:auto !important; z-index:49;}');
addGlobalStyle('#footer_menu_left #footer_building_gunsmith, #footer_menu_left #footer_building_tailor,#footer_menu_left #footer_building_general,#footer_menu_left #footer_building_hotel,#footer_menu_left #footer_building_bank,#footer_menu_left #footer_building_church,#footer_menu_left #footer_building_mortician ,#footer_menu_left #footer_building_cityhall,#footer_menu_left #footer_building_saloon,#footer_menu_left #footer_trader_saloon, #footer_menu_left #footer_building_market, #footer_menu_left #footer_building_sheriff { z-index:100; background-image:url(http://i757.photobucket.com/albums/xx211/Darius_II/tw/tw-shortcuts.png);}');
addGlobalStyle('#footer_building_tailor {background-position:-37px 0;}');
addGlobalStyle('#footer_building_general {background-position:-74px 0;}');
addGlobalStyle('#footer_building_saloon {background-position:-111px 0;}');
addGlobalStyle('#footer_building_mortician {background-position:-148px 0;}');
addGlobalStyle('#footer_building_bank {background-position:-185px 0;}');
addGlobalStyle('#footer_building_church {background-position:-222px 0;}');
addGlobalStyle('#footer_building_hotel {background-position:-259px 0;}');
addGlobalStyle('#footer_building_cityhall {background-position:-296px 0;}');
addGlobalStyle('#footer_trader_saloon {background-position:-333px 0;z-index:50}');
addGlobalStyle('#footer_building_market {background-position:-407px 0;z-index:50}');
addGlobalStyle('#footer_building_sheriff {background-position:-370px 0;z-index:50}');
addGlobalStyle('.homeless #footer_building_gunsmith {background-position:0px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_tailor {background-position:-37px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_general {background-position:-74px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_saloon {background-position:-111px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_mortician {background-position:-148px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_bank {background-position:-185px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_church {background-position:-222px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_hotel {background-position:-259px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_cityhall {background-position:-296px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_trader_saloon {background-position:-333px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_market {background-position:-407px 37px; cursor:default;}');
addGlobalStyle('.homeless #footer_building_sheriff {background-position:-370px 37px; cursor:default;}');

function addFooterIcon(mylink,idname) {
    var head, style;
	getAuthor();
    footer_menu_left = document.getElementById('footer_menu_left').childNodes[1];
    if (!footer_menu_left) {return;}
    var iconlink = document.createElement('a');
	iconlink.setAttribute('href',mylink);
	iconlink.innerHTML = "<img id=\""+idname+"\" alt=\"\" src=\"images/transparent.png\"/>";
    footer_menu_left.appendChild(iconlink);
	if ($('menu_townforum').className == 'inactive_menu') {
		$('footer_menu_left').setAttribute('class', 'homeless');
		if ($('menu_townforum_ext')) {
			$('menu_townforum_ext').setAttribute('class', 'inactive_menu');
		}
	}
	//setTimeout(function(){if ($(idname)) $(idname).addMousePopup(idname)},2500);
}

addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_gunsmith\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_gunsmith');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_tailor\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_tailor');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_general\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_general');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_hotel\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_hotel');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_bank\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_bank');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_church\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_church');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_mortician\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_mortician');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_cityhall\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_cityhall');
addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_saloon\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_saloon');
addFooterIcon('javascript:AjaxWindow.show(\'item_trader\');','footer_trader_saloon');
if (new_ver == true) {
	addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_sheriff\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_sheriff');
	addFooterIcon('javascript:if(Character.home_town != null) AjaxWindow.show(\'building_market\',{town_id:Character.home_town.town_id},Character.home_town.town_id);','footer_building_market');
	}

function addFooterAuthor(mylink,idname) {
    var head, style;
    main_container = document.getElementById('main_container').childNodes[13];
    if (!main_container) {return;}
    var mainfootnoteautor = document.createElement('div');
	mainfootnoteautor.setAttribute('class','main_footnote_autor');
	mainfootnoteautor.setAttribute('style','background:url("/images/main/bottom_slide_repeatx.png") repeat-x scroll center bottom transparent; cursor:default; float:left; height:14px; margin-left:6px; margin-right:6px; position:relative; top:12px;');
	mainfootnoteautor.innerHTML = "<div class=\"main_footnote_left\"></div><div class=\"main_footnote_right\"></div><div id=\"main_footnote_autor\">"+getAuthor()+"&nbsp;&nbsp;&nbsp;wersja:"+getMoCheckVersion()+"</div>";
    main_container.appendChild(mainfootnoteautor);
}

addFooterAuthor();

function addEndDiv(code) {
    var bodyx, enddiv;
    bodyx = document.getElementsByTagName('body')[0];
    if (!bodyx) {return;}
    enddiv = document.createElement('script');
    enddiv.type = 'text/javascript';
    enddiv.innerHTML = code;
    bodyx.appendChild(enddiv);
}

addEndDiv('WMap.initialize();');

/************************************************************************************************************************************/
// manipuliert interne Funktionen und fuegt eigene Aufrufe ein
function twpro_injectScript()
{
  TWPro.twpro_calculated = false;
  TWPro.twpro_failure = false;
  TWPro.twpro_failureInject = false;
  TWPro.twpro_failureRollback = new Array();
  TWPro.twpro_active = true;
  TWPro.twpro_jobs = new Array();
  TWPro.twpro_jobValues = new Object();
  TWPro.twpro_jobValues.swine = new Object();
  TWPro.twpro_jobValues.swine.erfahrung = 1;
  TWPro.twpro_jobValues.swine.lohn = 3;
  TWPro.twpro_jobValues.swine.glueck = 0;
  TWPro.twpro_jobValues.swine.gefahr = 1;
  TWPro.twpro_jobValues.scarecrow = new Object();
  TWPro.twpro_jobValues.scarecrow.erfahrung = 3;
  TWPro.twpro_jobValues.scarecrow.lohn = 1;
  TWPro.twpro_jobValues.scarecrow.glueck = 2;
  TWPro.twpro_jobValues.scarecrow.gefahr = 20;
  TWPro.twpro_jobValues.wanted = new Object();
  TWPro.twpro_jobValues.wanted.erfahrung = 3;
  TWPro.twpro_jobValues.wanted.lohn = 2;
  TWPro.twpro_jobValues.wanted.glueck = 0;
  TWPro.twpro_jobValues.wanted.gefahr = 10;
  TWPro.twpro_jobValues.tabacco = new Object();
  TWPro.twpro_jobValues.tabacco.erfahrung = 1;
  TWPro.twpro_jobValues.tabacco.lohn = 6;
  TWPro.twpro_jobValues.tabacco.glueck = 2;
  TWPro.twpro_jobValues.tabacco.gefahr = 2;
  TWPro.twpro_jobValues.cotton = new Object();
  TWPro.twpro_jobValues.cotton.erfahrung = 4;
  TWPro.twpro_jobValues.cotton.lohn = 1;
  TWPro.twpro_jobValues.cotton.glueck = 0;
  TWPro.twpro_jobValues.cotton.gefahr = 3;
  TWPro.twpro_jobValues.sugar = new Object();
  TWPro.twpro_jobValues.sugar.erfahrung = 2;
  TWPro.twpro_jobValues.sugar.lohn = 5;
  TWPro.twpro_jobValues.sugar.glueck = 4;
  TWPro.twpro_jobValues.sugar.gefahr = 1;
  TWPro.twpro_jobValues.angle = new Object();
  TWPro.twpro_jobValues.angle.erfahrung = 0;
  TWPro.twpro_jobValues.angle.lohn = 1;
  TWPro.twpro_jobValues.angle.glueck = 6;
  TWPro.twpro_jobValues.angle.gefahr = 2;
  TWPro.twpro_jobValues.cereal = new Object();
  TWPro.twpro_jobValues.cereal.erfahrung = 6;
  TWPro.twpro_jobValues.cereal.lohn = 2;
  TWPro.twpro_jobValues.cereal.glueck = 2;
  TWPro.twpro_jobValues.cereal.gefahr = 4;
  TWPro.twpro_jobValues.berry = new Object();
  TWPro.twpro_jobValues.berry.erfahrung = 6;
  TWPro.twpro_jobValues.berry.lohn = 2;
  TWPro.twpro_jobValues.berry.glueck = 5;
  TWPro.twpro_jobValues.berry.gefahr = 6;
  TWPro.twpro_jobValues.sheeps = new Object();
  TWPro.twpro_jobValues.sheeps.erfahrung = 5;
  TWPro.twpro_jobValues.sheeps.lohn = 3;
  TWPro.twpro_jobValues.sheeps.glueck = 0;
  TWPro.twpro_jobValues.sheeps.gefahr = 2;
  TWPro.twpro_jobValues.newspaper = new Object();
  TWPro.twpro_jobValues.newspaper.erfahrung = 1;
  TWPro.twpro_jobValues.newspaper.lohn = 6;
  TWPro.twpro_jobValues.newspaper.glueck = 2;
  TWPro.twpro_jobValues.newspaper.gefahr = 1;
  TWPro.twpro_jobValues.cut = new Object();
  TWPro.twpro_jobValues.cut.erfahrung = 7;
  TWPro.twpro_jobValues.cut.lohn = 5;
  TWPro.twpro_jobValues.cut.glueck = 3;
  TWPro.twpro_jobValues.cut.gefahr = 3;
  TWPro.twpro_jobValues.grinding = new Object();
  TWPro.twpro_jobValues.grinding.erfahrung = 7;
  TWPro.twpro_jobValues.grinding.lohn = 11;
  TWPro.twpro_jobValues.grinding.glueck = 0;
  TWPro.twpro_jobValues.grinding.gefahr = 5;
  TWPro.twpro_jobValues.corn = new Object();
  TWPro.twpro_jobValues.corn.erfahrung = 7;
  TWPro.twpro_jobValues.corn.lohn = 4;
  TWPro.twpro_jobValues.corn.glueck = 8;
  TWPro.twpro_jobValues.corn.gefahr = 5;
  TWPro.twpro_jobValues.beans = new Object();
  TWPro.twpro_jobValues.beans.erfahrung = 7;
  TWPro.twpro_jobValues.beans.lohn = 9;
  TWPro.twpro_jobValues.beans.glueck = 4;
  TWPro.twpro_jobValues.beans.gefahr = 5;
  TWPro.twpro_jobValues.fort_guard = new Object();
  TWPro.twpro_jobValues.fort_guard.erfahrung = 9;
  TWPro.twpro_jobValues.fort_guard.lohn = 3;
  TWPro.twpro_jobValues.fort_guard.glueck = 2;
  TWPro.twpro_jobValues.fort_guard.gefahr = 7;
  TWPro.twpro_jobValues.tanning = new Object();
  TWPro.twpro_jobValues.tanning.erfahrung = 15;
  TWPro.twpro_jobValues.tanning.lohn = 12;
  TWPro.twpro_jobValues.tanning.glueck = 5;
  TWPro.twpro_jobValues.tanning.gefahr = 18;
  TWPro.twpro_jobValues.digging = new Object();
  TWPro.twpro_jobValues.digging.erfahrung = 3;
  TWPro.twpro_jobValues.digging.lohn = 11;
  TWPro.twpro_jobValues.digging.glueck = 5;
  TWPro.twpro_jobValues.digging.gefahr = 7;
  TWPro.twpro_jobValues.grave = new Object();
  TWPro.twpro_jobValues.grave.erfahrung = 12;
  TWPro.twpro_jobValues.grave.lohn = 16;
  TWPro.twpro_jobValues.grave.glueck = 22;
  TWPro.twpro_jobValues.grave.gefahr = 9;
  TWPro.twpro_jobValues.turkey = new Object();
  TWPro.twpro_jobValues.turkey.erfahrung = 14;
  TWPro.twpro_jobValues.turkey.lohn = 3;
  TWPro.twpro_jobValues.turkey.glueck = 7;
  TWPro.twpro_jobValues.turkey.gefahr = 21;
  TWPro.twpro_jobValues.rail = new Object();
  TWPro.twpro_jobValues.rail.erfahrung = 18;
  TWPro.twpro_jobValues.rail.lohn = 10;
  TWPro.twpro_jobValues.rail.glueck = 5;
  TWPro.twpro_jobValues.rail.gefahr = 10;
  TWPro.twpro_jobValues.cow = new Object();
  TWPro.twpro_jobValues.cow.erfahrung = 17;
  TWPro.twpro_jobValues.cow.lohn = 5;
  TWPro.twpro_jobValues.cow.glueck = 0;
  TWPro.twpro_jobValues.cow.gefahr = 11;
  TWPro.twpro_jobValues.fence = new Object();
  TWPro.twpro_jobValues.fence.erfahrung = 11;
  TWPro.twpro_jobValues.fence.lohn = 7;
  TWPro.twpro_jobValues.fence.glueck = 5;
  TWPro.twpro_jobValues.fence.gefahr = 6;
  TWPro.twpro_jobValues.saw = new Object();
  TWPro.twpro_jobValues.saw.erfahrung = 12;
  TWPro.twpro_jobValues.saw.lohn = 23;
  TWPro.twpro_jobValues.saw.glueck = 6;
  TWPro.twpro_jobValues.saw.gefahr = 32;
  TWPro.twpro_jobValues.stone = new Object();
  TWPro.twpro_jobValues.stone.erfahrung = 8;
  TWPro.twpro_jobValues.stone.lohn = 17;
  TWPro.twpro_jobValues.stone.glueck = 9;
  TWPro.twpro_jobValues.stone.gefahr = 33;
  TWPro.twpro_jobValues.straighten = new Object();
  TWPro.twpro_jobValues.straighten.erfahrung = 22;
  TWPro.twpro_jobValues.straighten.lohn = 8;
  TWPro.twpro_jobValues.straighten.glueck = 15;
  TWPro.twpro_jobValues.straighten.gefahr = 12;
  TWPro.twpro_jobValues.wood = new Object();
  TWPro.twpro_jobValues.wood.erfahrung = 5;
  TWPro.twpro_jobValues.wood.lohn = 18;
  TWPro.twpro_jobValues.wood.glueck = 2;
  TWPro.twpro_jobValues.wood.gefahr = 21;
  TWPro.twpro_jobValues.irrigation = new Object();
  TWPro.twpro_jobValues.irrigation.erfahrung = 13;
  TWPro.twpro_jobValues.irrigation.lohn = 7;
  TWPro.twpro_jobValues.irrigation.glueck = 15;
  TWPro.twpro_jobValues.irrigation.gefahr = 6;
  TWPro.twpro_jobValues.brand = new Object();
  TWPro.twpro_jobValues.brand.erfahrung = 25;
  TWPro.twpro_jobValues.brand.lohn = 8;
  TWPro.twpro_jobValues.brand.glueck = 0;
  TWPro.twpro_jobValues.brand.gefahr = 35;
  TWPro.twpro_jobValues.wire = new Object();
  TWPro.twpro_jobValues.wire.erfahrung = 13;
  TWPro.twpro_jobValues.wire.lohn = 17;
  TWPro.twpro_jobValues.wire.glueck = 6;
  TWPro.twpro_jobValues.wire.gefahr = 0;
  TWPro.twpro_jobValues.dam = new Object();
  TWPro.twpro_jobValues.dam.erfahrung = 18;
  TWPro.twpro_jobValues.dam.lohn = 4;
  TWPro.twpro_jobValues.dam.glueck = 9;
  TWPro.twpro_jobValues.dam.gefahr = 41;
  TWPro.twpro_jobValues.gems = new Object();
  TWPro.twpro_jobValues.gems.erfahrung = 7;
  TWPro.twpro_jobValues.gems.lohn = 25;
  TWPro.twpro_jobValues.gems.glueck = 8;
  TWPro.twpro_jobValues.gems.gefahr = 4;
  TWPro.twpro_jobValues.claim = new Object();
  TWPro.twpro_jobValues.claim.erfahrung = 4;
  TWPro.twpro_jobValues.claim.lohn = 31;
  TWPro.twpro_jobValues.claim.glueck = 4;
  TWPro.twpro_jobValues.claim.gefahr = 29;
  TWPro.twpro_jobValues.chuck_wagon = new Object();
  TWPro.twpro_jobValues.chuck_wagon.erfahrung = 23;
  TWPro.twpro_jobValues.chuck_wagon.lohn = 5;
  TWPro.twpro_jobValues.chuck_wagon.glueck = 42;
  TWPro.twpro_jobValues.chuck_wagon.gefahr = 11;
  TWPro.twpro_jobValues.break_in = new Object();
  TWPro.twpro_jobValues.break_in.erfahrung = 32;
  TWPro.twpro_jobValues.break_in.lohn = 13;
  TWPro.twpro_jobValues.break_in.glueck = 10;
  TWPro.twpro_jobValues.break_in.gefahr = 52;
  TWPro.twpro_jobValues.trade = new Object();
  TWPro.twpro_jobValues.trade.erfahrung = 3;
  TWPro.twpro_jobValues.trade.lohn = 15;
  TWPro.twpro_jobValues.trade.glueck = 25;
  TWPro.twpro_jobValues.trade.gefahr = 12;
  TWPro.twpro_jobValues.mast = new Object();
  TWPro.twpro_jobValues.mast.erfahrung = 25;
  TWPro.twpro_jobValues.mast.lohn = 21;
  TWPro.twpro_jobValues.mast.glueck = 3;
  TWPro.twpro_jobValues.mast.gefahr = 14;
  TWPro.twpro_jobValues.spring = new Object();
  TWPro.twpro_jobValues.spring.erfahrung = 33;
  TWPro.twpro_jobValues.spring.lohn = 9;
  TWPro.twpro_jobValues.spring.glueck = 23;
  TWPro.twpro_jobValues.spring.gefahr = 19;
  TWPro.twpro_jobValues.beaver = new Object();
  TWPro.twpro_jobValues.beaver.erfahrung = 17;
  TWPro.twpro_jobValues.beaver.lohn = 32;
  TWPro.twpro_jobValues.beaver.glueck = 6;
  TWPro.twpro_jobValues.beaver.gefahr = 21;
  TWPro.twpro_jobValues.coal = new Object();
  TWPro.twpro_jobValues.coal.erfahrung = 14;
  TWPro.twpro_jobValues.coal.lohn = 30;
  TWPro.twpro_jobValues.coal.glueck = 0;
  TWPro.twpro_jobValues.coal.gefahr = 13;
  TWPro.twpro_jobValues.print = new Object();
  TWPro.twpro_jobValues.print.erfahrung = 20;
  TWPro.twpro_jobValues.print.lohn = 30;
  TWPro.twpro_jobValues.print.glueck = 5;
  TWPro.twpro_jobValues.print.gefahr = 7;
  TWPro.twpro_jobValues.fishing = new Object();
  TWPro.twpro_jobValues.fishing.erfahrung = 23;
  TWPro.twpro_jobValues.fishing.lohn = 6;
  TWPro.twpro_jobValues.fishing.glueck = 23;
  TWPro.twpro_jobValues.fishing.gefahr = 38;
  TWPro.twpro_jobValues.trainstation = new Object();
  TWPro.twpro_jobValues.trainstation.erfahrung = 47;
  TWPro.twpro_jobValues.trainstation.lohn = 12;
  TWPro.twpro_jobValues.trainstation.glueck = 7;
  TWPro.twpro_jobValues.trainstation.gefahr = 15;
  TWPro.twpro_jobValues.windmeel = new Object();
  TWPro.twpro_jobValues.windmeel.erfahrung = 43;
  TWPro.twpro_jobValues.windmeel.lohn = 42;
  TWPro.twpro_jobValues.windmeel.glueck = 6;
  TWPro.twpro_jobValues.windmeel.gefahr = 18;
  TWPro.twpro_jobValues.explore = new Object();
  TWPro.twpro_jobValues.explore.erfahrung = 45;
  TWPro.twpro_jobValues.explore.lohn = 1;
  TWPro.twpro_jobValues.explore.glueck = 22;
  TWPro.twpro_jobValues.explore.gefahr = 37;
  TWPro.twpro_jobValues.float = new Object();
  TWPro.twpro_jobValues.float.erfahrung = 45;
  TWPro.twpro_jobValues.float.lohn = 23;
  TWPro.twpro_jobValues.float.glueck = 0;
  TWPro.twpro_jobValues.float.gefahr = 52;
  TWPro.twpro_jobValues.bridge = new Object();
  TWPro.twpro_jobValues.bridge.erfahrung = 33;
  TWPro.twpro_jobValues.bridge.lohn = 17;
  TWPro.twpro_jobValues.bridge.glueck = 18;
  TWPro.twpro_jobValues.bridge.gefahr = 53;
  TWPro.twpro_jobValues.springe = new Object();
  TWPro.twpro_jobValues.springe.erfahrung = 45;
  TWPro.twpro_jobValues.springe.lohn = 29;
  TWPro.twpro_jobValues.springe.glueck = 0;
  TWPro.twpro_jobValues.springe.gefahr = 42;
  TWPro.twpro_jobValues.coffin = new Object();
  TWPro.twpro_jobValues.coffin.erfahrung = 8;
  TWPro.twpro_jobValues.coffin.lohn = 42;
  TWPro.twpro_jobValues.coffin.glueck = 15;
  TWPro.twpro_jobValues.coffin.gefahr = 20;
  TWPro.twpro_jobValues.dynamite = new Object();
  TWPro.twpro_jobValues.dynamite.erfahrung = 12;
  TWPro.twpro_jobValues.dynamite.lohn = 23;
  TWPro.twpro_jobValues.dynamite.glueck = 64;
  TWPro.twpro_jobValues.dynamite.gefahr = 93;
  TWPro.twpro_jobValues.coyote = new Object();
  TWPro.twpro_jobValues.coyote.erfahrung = 43;
  TWPro.twpro_jobValues.coyote.lohn = 15;
  TWPro.twpro_jobValues.coyote.glueck = 26;
  TWPro.twpro_jobValues.coyote.gefahr = 45;
  TWPro.twpro_jobValues.buffalo = new Object();
  TWPro.twpro_jobValues.buffalo.erfahrung = 62;
  TWPro.twpro_jobValues.buffalo.lohn = 24;
  TWPro.twpro_jobValues.buffalo.glueck = 0;
  TWPro.twpro_jobValues.buffalo.gefahr = 72;
  TWPro.twpro_jobValues.fort = new Object();
  TWPro.twpro_jobValues.fort.erfahrung = 71;
  TWPro.twpro_jobValues.fort.lohn = 33;
  TWPro.twpro_jobValues.fort.glueck = 17;
  TWPro.twpro_jobValues.fort.gefahr = 35;
  TWPro.twpro_jobValues.indians = new Object();
  TWPro.twpro_jobValues.indians.erfahrung = 14;
  TWPro.twpro_jobValues.indians.lohn = 11;
  TWPro.twpro_jobValues.indians.glueck = 63;
  TWPro.twpro_jobValues.indians.gefahr = 34;
  TWPro.twpro_jobValues.clearing = new Object();
  TWPro.twpro_jobValues.clearing.erfahrung = 8;
  TWPro.twpro_jobValues.clearing.lohn = 62;
  TWPro.twpro_jobValues.clearing.glueck = 9;
  TWPro.twpro_jobValues.clearing.gefahr = 16;
  TWPro.twpro_jobValues.silver = new Object();
  TWPro.twpro_jobValues.silver.erfahrung = 8;
  TWPro.twpro_jobValues.silver.lohn = 76;
  TWPro.twpro_jobValues.silver.glueck = 0;
  TWPro.twpro_jobValues.silver.gefahr = 32;
  TWPro.twpro_jobValues.diligence_guard = new Object();
  TWPro.twpro_jobValues.diligence_guard.erfahrung = 77;
  TWPro.twpro_jobValues.diligence_guard.lohn = 34;
  TWPro.twpro_jobValues.diligence_guard.glueck = 45;
  TWPro.twpro_jobValues.diligence_guard.gefahr = 43;
  TWPro.twpro_jobValues.wolf = new Object();
  TWPro.twpro_jobValues.wolf.erfahrung = 63;
  TWPro.twpro_jobValues.wolf.lohn = 21;
  TWPro.twpro_jobValues.wolf.glueck = 15;
  TWPro.twpro_jobValues.wolf.gefahr = 67;
  TWPro.twpro_jobValues.track = new Object();
  TWPro.twpro_jobValues.track.erfahrung = 60;
  TWPro.twpro_jobValues.track.lohn = 10;
  TWPro.twpro_jobValues.track.glueck = 30;
  TWPro.twpro_jobValues.track.gefahr = 33;
  TWPro.twpro_jobValues.ox = new Object();
  TWPro.twpro_jobValues.ox.erfahrung = 34;
  TWPro.twpro_jobValues.ox.lohn = 64;
  TWPro.twpro_jobValues.ox.glueck = 18;
  TWPro.twpro_jobValues.ox.gefahr = 43;
  TWPro.twpro_jobValues.guard = new Object();
  TWPro.twpro_jobValues.guard.erfahrung = 35;
  TWPro.twpro_jobValues.guard.lohn = 25;
  TWPro.twpro_jobValues.guard.glueck = 38;
  TWPro.twpro_jobValues.guard.gefahr = 4;
  TWPro.twpro_jobValues.bible = new Object();
  TWPro.twpro_jobValues.bible.erfahrung = 61;
  TWPro.twpro_jobValues.bible.lohn = 5;
  TWPro.twpro_jobValues.bible.glueck = 52;
  TWPro.twpro_jobValues.bible.gefahr = 77;
  TWPro.twpro_jobValues.ponyexpress = new Object();
  TWPro.twpro_jobValues.ponyexpress.erfahrung = 48;
  TWPro.twpro_jobValues.ponyexpress.lohn = 15;
  TWPro.twpro_jobValues.ponyexpress.glueck = 51;
  TWPro.twpro_jobValues.ponyexpress.gefahr = 44;
  TWPro.twpro_jobValues.weapons = new Object();
  TWPro.twpro_jobValues.weapons.erfahrung = 35;
  TWPro.twpro_jobValues.weapons.lohn = 15;
  TWPro.twpro_jobValues.weapons.glueck = 72;
  TWPro.twpro_jobValues.weapons.gefahr = 82;
  TWPro.twpro_jobValues.dead = new Object();
  TWPro.twpro_jobValues.dead.erfahrung = 14;
  TWPro.twpro_jobValues.dead.lohn = 14;
  TWPro.twpro_jobValues.dead.glueck = 90;
  TWPro.twpro_jobValues.dead.gefahr = 34;
  TWPro.twpro_jobValues.grizzly = new Object();
  TWPro.twpro_jobValues.grizzly.erfahrung = 78;
  TWPro.twpro_jobValues.grizzly.lohn = 25;
  TWPro.twpro_jobValues.grizzly.glueck = 35;
  TWPro.twpro_jobValues.grizzly.gefahr = 71;
  TWPro.twpro_jobValues.oil = new Object();
  TWPro.twpro_jobValues.oil.erfahrung = 25;
  TWPro.twpro_jobValues.oil.lohn = 83;
  TWPro.twpro_jobValues.oil.glueck = 20;
  TWPro.twpro_jobValues.oil.gefahr = 7;
  TWPro.twpro_jobValues.treasure_hunting = new Object();
  TWPro.twpro_jobValues.treasure_hunting.erfahrung = 20;
  TWPro.twpro_jobValues.treasure_hunting.lohn = 20;
  TWPro.twpro_jobValues.treasure_hunting.glueck = 83;
  TWPro.twpro_jobValues.treasure_hunting.gefahr = 24;
  TWPro.twpro_jobValues.army = new Object();
  TWPro.twpro_jobValues.army.erfahrung = 76;
  TWPro.twpro_jobValues.army.lohn = 55;
  TWPro.twpro_jobValues.army.glueck = 17;
  TWPro.twpro_jobValues.army.gefahr = 35;
  TWPro.twpro_jobValues.steal = new Object();
  TWPro.twpro_jobValues.steal.erfahrung = 50;
  TWPro.twpro_jobValues.steal.lohn = 48;
  TWPro.twpro_jobValues.steal.glueck = 74;
  TWPro.twpro_jobValues.steal.gefahr = 66;
  TWPro.twpro_jobValues.mercenary = new Object();
  TWPro.twpro_jobValues.mercenary.erfahrung = 52;
  TWPro.twpro_jobValues.mercenary.lohn = 92;
  TWPro.twpro_jobValues.mercenary.glueck = 23;
  TWPro.twpro_jobValues.mercenary.gefahr = 65;
  TWPro.twpro_jobValues.bandits = new Object();
  TWPro.twpro_jobValues.bandits.erfahrung = 75;
  TWPro.twpro_jobValues.bandits.lohn = 28;
  TWPro.twpro_jobValues.bandits.glueck = 85;
  TWPro.twpro_jobValues.bandits.gefahr = 83;
  TWPro.twpro_jobValues.aggression = new Object();
  TWPro.twpro_jobValues.aggression.erfahrung = 27;
  TWPro.twpro_jobValues.aggression.lohn = 78;
  TWPro.twpro_jobValues.aggression.glueck = 78;
  TWPro.twpro_jobValues.aggression.gefahr = 86;
  TWPro.twpro_jobValues.diligence_aggression = new Object();
  TWPro.twpro_jobValues.diligence_aggression.erfahrung = 73;
  TWPro.twpro_jobValues.diligence_aggression.lohn = 43;
  TWPro.twpro_jobValues.diligence_aggression.glueck = 95;
  TWPro.twpro_jobValues.diligence_aggression.gefahr = 67;
  TWPro.twpro_jobValues.bounty = new Object();
  TWPro.twpro_jobValues.bounty.erfahrung = 32;
  TWPro.twpro_jobValues.bounty.lohn = 92;
  TWPro.twpro_jobValues.bounty.glueck = 79;
  TWPro.twpro_jobValues.bounty.gefahr = 72;
  TWPro.twpro_jobValues.captured = new Object();
  TWPro.twpro_jobValues.captured.erfahrung = 69;
  TWPro.twpro_jobValues.captured.lohn = 23;
  TWPro.twpro_jobValues.captured.glueck = 85;
  TWPro.twpro_jobValues.captured.gefahr = 44;
  TWPro.twpro_jobValues.train = new Object();
  TWPro.twpro_jobValues.train.erfahrung = 87;
  TWPro.twpro_jobValues.train.lohn = 67;
  TWPro.twpro_jobValues.train.glueck = 92;
  TWPro.twpro_jobValues.train.gefahr = 96;
  TWPro.twpro_jobValues.burglary = new Object();
  TWPro.twpro_jobValues.burglary.erfahrung = 34;
  TWPro.twpro_jobValues.burglary.lohn = 80;
  TWPro.twpro_jobValues.burglary.glueck = 81;
  TWPro.twpro_jobValues.burglary.gefahr = 26;
  TWPro.twpro_jobValues.quackery = new Object();
  TWPro.twpro_jobValues.quackery.erfahrung = 50;
  TWPro.twpro_jobValues.quackery.lohn = 65;
  TWPro.twpro_jobValues.quackery.glueck = 52;
  TWPro.twpro_jobValues.quackery.gefahr = 67;
  TWPro.twpro_jobValues.peace = new Object();
  TWPro.twpro_jobValues.peace.erfahrung = 68;
  TWPro.twpro_jobValues.peace.lohn = 33;
  TWPro.twpro_jobValues.peace.glueck = 76;
  TWPro.twpro_jobValues.peace.gefahr = 44;
  TWPro.twpro_jobValues.ship = new Object();
  TWPro.twpro_jobValues.ship.erfahrung = 35;
  TWPro.twpro_jobValues.ship.lohn = 82;
  TWPro.twpro_jobValues.ship.glueck = 15;
  TWPro.twpro_jobValues.ship.gefahr = 14;
  TWPro.twpro_jobValues.smuggle = new Object();
  TWPro.twpro_jobValues.smuggle.erfahrung = 45;
  TWPro.twpro_jobValues.smuggle.lohn = 62;
  TWPro.twpro_jobValues.smuggle.glueck = 83;
  TWPro.twpro_jobValues.smuggle.gefahr = 56;
  TWPro.twpro_jobValues.ranch = new Object();
  TWPro.twpro_jobValues.ranch.erfahrung = 61;
  TWPro.twpro_jobValues.ranch.lohn = 28;
  TWPro.twpro_jobValues.ranch.glueck = 17;
  TWPro.twpro_jobValues.ranch.gefahr = 24;
  TWPro.twpro_jobValues.iron = new Object();
  TWPro.twpro_jobValues.iron.erfahrung = 32;
  TWPro.twpro_jobValues.iron.lohn = 52;
  TWPro.twpro_jobValues.iron.glueck = 15;
  TWPro.twpro_jobValues.iron.gefahr = 29;
  TWPro.twpro_jobValues.agave = new Object();
  TWPro.twpro_jobValues.agave.erfahrung = 42;
  TWPro.twpro_jobValues.agave.lohn = 25;
  TWPro.twpro_jobValues.agave.glueck = 12;
  TWPro.twpro_jobValues.agave.gefahr = 27;
  TWPro.twpro_jobValues.tomato = new Object();
  TWPro.twpro_jobValues.tomato.erfahrung = 12;
  TWPro.twpro_jobValues.tomato.lohn = 13;
  TWPro.twpro_jobValues.tomato.glueck = 7;
  TWPro.twpro_jobValues.tomato.gefahr = 11;
  TWPro.twpro_jobValues.horseshoe = new Object();
  TWPro.twpro_jobValues.horseshoe.erfahrung = 28;
  TWPro.twpro_jobValues.horseshoe.lohn = 14;
  TWPro.twpro_jobValues.horseshoe.glueck = 9;
  TWPro.twpro_jobValues.horseshoe.gefahr = 23;
  TWPro.twpro_jobValues.fire = new Object();
  TWPro.twpro_jobValues.fire.erfahrung = 41;
  TWPro.twpro_jobValues.fire.lohn = 15;
  TWPro.twpro_jobValues.fire.glueck = 65;
  TWPro.twpro_jobValues.fire.gefahr = 45;
  TWPro.twpro_jobValues.orange = new Object();
  TWPro.twpro_jobValues.orange.erfahrung = 25;
  TWPro.twpro_jobValues.orange.lohn = 14;
  TWPro.twpro_jobValues.orange.glueck = 10;
  TWPro.twpro_jobValues.orange.gefahr = 21;
  TWPro.twpro_jobValues.muck_out = new Object();
  TWPro.twpro_jobValues.muck_out.erfahrung = 5;
  TWPro.twpro_jobValues.muck_out.lohn = 4;
  TWPro.twpro_jobValues.muck_out.glueck = 2;
  TWPro.twpro_jobValues.muck_out.gefahr = 6;
  TWPro.twpro_jobValues.shoes = new Object();
  TWPro.twpro_jobValues.shoes.erfahrung = 2;
  TWPro.twpro_jobValues.shoes.lohn = 3;
  TWPro.twpro_jobValues.shoes.glueck = 3;
  TWPro.twpro_jobValues.shoes.gefahr = 2;
  TWPro.twpro_jobValues.construct = new Object();
  TWPro.twpro_jobValues.construct.erfahrung = 0;
  TWPro.twpro_jobValues.construct.lohn = 0;
  TWPro.twpro_jobValues.construct.glueck = 0;
  TWPro.twpro_jobValues.construct.gefahr = 0;
  TWPro.twpro_setBonusParsed = false;
  TWPro.twpro_setBonus = new Object();
  TWPro.twpro_setBonus.set_farmer = new Array();
  TWPro.twpro_setBonus.set_farmer[2] = new Object();
  TWPro.twpro_setBonus.set_farmer[2].bonus = new Object();
  TWPro.twpro_setBonus.set_farmer[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_farmer[2].bonus.attributes.strength = 1;
  TWPro.twpro_setBonus.set_farmer[2].bonus.attributes.flexibility = 1;
  TWPro.twpro_setBonus.set_farmer[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_farmer[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_farmer[2].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_farmer[2].jobBonus.cereal = 10;
  TWPro.twpro_setBonus.set_farmer[2].jobBonus.cut = 10;
  TWPro.twpro_setBonus.set_farmer[2].jobBonus.grinding = 10;
  TWPro.twpro_setBonus.set_farmer[2].speedBonus = 0;
  TWPro.twpro_setBonus.set_farmer[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_farmer[3] = new Object();
  TWPro.twpro_setBonus.set_farmer[3].bonus = new Object();
  TWPro.twpro_setBonus.set_farmer[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_farmer[3].bonus.attributes.strength = 1;
  TWPro.twpro_setBonus.set_farmer[3].bonus.attributes.flexibility = 1;
  TWPro.twpro_setBonus.set_farmer[3].bonus.attributes.dexterity = 1;
  TWPro.twpro_setBonus.set_farmer[3].bonus.attributes.charisma = 1;
  TWPro.twpro_setBonus.set_farmer[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_farmer[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_farmer[3].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_farmer[3].jobBonus.cereal = 10;
  TWPro.twpro_setBonus.set_farmer[3].jobBonus.cut = 10;
  TWPro.twpro_setBonus.set_farmer[3].jobBonus.grinding = 10;
  TWPro.twpro_setBonus.set_farmer[3].jobBonus.cow = 20;
  TWPro.twpro_setBonus.set_farmer[3].jobBonus.wire = 20;
  TWPro.twpro_setBonus.set_farmer[3].jobBonus.horseshoe = 20;
  TWPro.twpro_setBonus.set_farmer[3].speedBonus = 0;
  TWPro.twpro_setBonus.set_farmer[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_farmer[4] = new Object();
  TWPro.twpro_setBonus.set_farmer[4].bonus = new Object();
  TWPro.twpro_setBonus.set_farmer[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_farmer[4].bonus.attributes.strength = 2;
  TWPro.twpro_setBonus.set_farmer[4].bonus.attributes.flexibility = 2;
  TWPro.twpro_setBonus.set_farmer[4].bonus.attributes.dexterity = 2;
  TWPro.twpro_setBonus.set_farmer[4].bonus.attributes.charisma = 2;
  TWPro.twpro_setBonus.set_farmer[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_farmer[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.cereal = 10;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.cut = 10;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.grinding = 10;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.cow = 20;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.wire = 20;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.windmeel = 40;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.springe = 40;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.ranch = 40;
  TWPro.twpro_setBonus.set_farmer[4].jobBonus.horseshoe = 20;
  TWPro.twpro_setBonus.set_farmer[4].speedBonus = 0;
  TWPro.twpro_setBonus.set_farmer[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_indian = new Array();
  TWPro.twpro_setBonus.set_indian[2] = new Object();
  TWPro.twpro_setBonus.set_indian[2].bonus = new Object();
  TWPro.twpro_setBonus.set_indian[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_indian[2].bonus.attributes.flexibility = 2;
  TWPro.twpro_setBonus.set_indian[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_indian[2].bonus.skills.hide = 8;
  TWPro.twpro_setBonus.set_indian[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_indian[2].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_indian[2].jobBonus.coyote = 30;
  TWPro.twpro_setBonus.set_indian[2].speedBonus = 15;
  TWPro.twpro_setBonus.set_indian[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_indian[3] = new Object();
  TWPro.twpro_setBonus.set_indian[3].bonus = new Object();
  TWPro.twpro_setBonus.set_indian[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_indian[3].bonus.attributes.flexibility = 5;
  TWPro.twpro_setBonus.set_indian[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_indian[3].bonus.skills.hide = 8;
  TWPro.twpro_setBonus.set_indian[3].bonus.skills.swim = 8;
  TWPro.twpro_setBonus.set_indian[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_indian[3].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_indian[3].jobBonus.coyote = 30;
  TWPro.twpro_setBonus.set_indian[3].jobBonus.buffalo = 40;
  TWPro.twpro_setBonus.set_indian[3].speedBonus = 30;
  TWPro.twpro_setBonus.set_indian[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_indian[4] = new Object();
  TWPro.twpro_setBonus.set_indian[4].bonus = new Object();
  TWPro.twpro_setBonus.set_indian[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_indian[4].bonus.attributes.flexibility = 8;
  TWPro.twpro_setBonus.set_indian[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_indian[4].bonus.skills.hide = 8;
  TWPro.twpro_setBonus.set_indian[4].bonus.skills.swim = 8;
  TWPro.twpro_setBonus.set_indian[4].bonus.skills.pitfall = 8;
  TWPro.twpro_setBonus.set_indian[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_indian[4].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_indian[4].jobBonus.coyote = 30;
  TWPro.twpro_setBonus.set_indian[4].jobBonus.buffalo = 40;
  TWPro.twpro_setBonus.set_indian[4].jobBonus.wolf = 50;
  TWPro.twpro_setBonus.set_indian[4].speedBonus = 44;
  TWPro.twpro_setBonus.set_indian[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_indian[5] = new Object();
  TWPro.twpro_setBonus.set_indian[5].bonus = new Object();
  TWPro.twpro_setBonus.set_indian[5].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_indian[5].bonus.attributes.flexibility = 12;
  TWPro.twpro_setBonus.set_indian[5].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_indian[5].bonus.skills.hide = 8;
  TWPro.twpro_setBonus.set_indian[5].bonus.skills.swim = 8;
  TWPro.twpro_setBonus.set_indian[5].bonus.skills.pitfall = 8;
  TWPro.twpro_setBonus.set_indian[5].bonus.skills.animal = 8;
  TWPro.twpro_setBonus.set_indian[5].jobBonus = new Object();
  TWPro.twpro_setBonus.set_indian[5].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_indian[5].jobBonus.coyote = 30;
  TWPro.twpro_setBonus.set_indian[5].jobBonus.buffalo = 40;
  TWPro.twpro_setBonus.set_indian[5].jobBonus.wolf = 50;
  TWPro.twpro_setBonus.set_indian[5].jobBonus.grizzly = 60;
  TWPro.twpro_setBonus.set_indian[5].speedBonus = 60;
  TWPro.twpro_setBonus.set_indian[5].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_mexican = new Array();
  TWPro.twpro_setBonus.set_mexican[2] = new Object();
  TWPro.twpro_setBonus.set_mexican[2].bonus = new Object();
  TWPro.twpro_setBonus.set_mexican[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_mexican[2].bonus.attributes.strength = 1;
  TWPro.twpro_setBonus.set_mexican[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_mexican[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[2].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_mexican[2].speedBonus = 12;
  TWPro.twpro_setBonus.set_mexican[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[3] = new Object();
  TWPro.twpro_setBonus.set_mexican[3].bonus = new Object();
  TWPro.twpro_setBonus.set_mexican[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_mexican[3].bonus.attributes.strength = 2;
  TWPro.twpro_setBonus.set_mexican[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_mexican[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[3].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_mexican[3].jobBonus.agave = 60;
  TWPro.twpro_setBonus.set_mexican[3].speedBonus = 24;
  TWPro.twpro_setBonus.set_mexican[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[4] = new Object();
  TWPro.twpro_setBonus.set_mexican[4].bonus = new Object();
  TWPro.twpro_setBonus.set_mexican[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_mexican[4].bonus.attributes.strength = 4;
  TWPro.twpro_setBonus.set_mexican[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_mexican[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[4].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_mexican[4].jobBonus.oil = 70;
  TWPro.twpro_setBonus.set_mexican[4].jobBonus.agave = 60;
  TWPro.twpro_setBonus.set_mexican[4].speedBonus = 36;
  TWPro.twpro_setBonus.set_mexican[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[5] = new Object();
  TWPro.twpro_setBonus.set_mexican[5].bonus = new Object();
  TWPro.twpro_setBonus.set_mexican[5].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_mexican[5].bonus.attributes.strength = 6;
  TWPro.twpro_setBonus.set_mexican[5].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_mexican[5].jobBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[5].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_mexican[5].jobBonus.oil = 70;
  TWPro.twpro_setBonus.set_mexican[5].jobBonus.smuggle = 80;
  TWPro.twpro_setBonus.set_mexican[5].jobBonus.agave = 60;
  TWPro.twpro_setBonus.set_mexican[5].speedBonus = 48;
  TWPro.twpro_setBonus.set_mexican[5].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[6] = new Object();
  TWPro.twpro_setBonus.set_mexican[6].bonus = new Object();
  TWPro.twpro_setBonus.set_mexican[6].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_mexican[6].bonus.attributes.strength = 9;
  TWPro.twpro_setBonus.set_mexican[6].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_mexican[6].jobBonus = new Object();
  TWPro.twpro_setBonus.set_mexican[6].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_mexican[6].jobBonus.dynamite = 90;
  TWPro.twpro_setBonus.set_mexican[6].jobBonus.oil = 70;
  TWPro.twpro_setBonus.set_mexican[6].jobBonus.smuggle = 80;
  TWPro.twpro_setBonus.set_mexican[6].jobBonus.agave = 60;
  TWPro.twpro_setBonus.set_mexican[6].speedBonus = 60;
  TWPro.twpro_setBonus.set_mexican[6].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male = new Array();
  TWPro.twpro_setBonus.set_pilgrim_male[2] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[2].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[2].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[2].jobBonus.construct = 5;
  TWPro.twpro_setBonus.set_pilgrim_male[2].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[3] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[3].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[3].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[3].jobBonus.construct = 15;
  TWPro.twpro_setBonus.set_pilgrim_male[3].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[4] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[4].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[4].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[4].jobBonus.construct = 30;
  TWPro.twpro_setBonus.set_pilgrim_male[4].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[5] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[5].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[5].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[5].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[5].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_male[5].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[5].jobBonus.bible = 150;
  TWPro.twpro_setBonus.set_pilgrim_male[5].jobBonus.construct = 50;
  TWPro.twpro_setBonus.set_pilgrim_male[5].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_male[5].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female = new Array();
  TWPro.twpro_setBonus.set_pilgrim_female[2] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[2].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[2].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[2].jobBonus.construct = 5;
  TWPro.twpro_setBonus.set_pilgrim_female[2].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[3] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[3].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[3].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[3].jobBonus.construct = 15;
  TWPro.twpro_setBonus.set_pilgrim_female[3].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[4] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[4].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[4].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[4].jobBonus.construct = 30;
  TWPro.twpro_setBonus.set_pilgrim_female[4].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[5] = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[5].bonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[5].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[5].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[5].jobBonus = new Object();
  TWPro.twpro_setBonus.set_pilgrim_female[5].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[5].jobBonus.bible = 150;
  TWPro.twpro_setBonus.set_pilgrim_female[5].jobBonus.construct = 50;
  TWPro.twpro_setBonus.set_pilgrim_female[5].speedBonus = 0;
  TWPro.twpro_setBonus.set_pilgrim_female[5].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_quackery = new Array();
  TWPro.twpro_setBonus.set_quackery[2] = new Object();
  TWPro.twpro_setBonus.set_quackery[2].bonus = new Object();
  TWPro.twpro_setBonus.set_quackery[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_quackery[2].bonus.attributes.dexterity = 1;
  TWPro.twpro_setBonus.set_quackery[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_quackery[2].bonus.skills.endurance = 5;
  TWPro.twpro_setBonus.set_quackery[2].bonus.skills.trade = 5;
  TWPro.twpro_setBonus.set_quackery[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[2].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_quackery[2].jobBonus.quackery = 30;
  TWPro.twpro_setBonus.set_quackery[2].speedBonus = 0;
  TWPro.twpro_setBonus.set_quackery[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[3] = new Object();
  TWPro.twpro_setBonus.set_quackery[3].bonus = new Object();
  TWPro.twpro_setBonus.set_quackery[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_quackery[3].bonus.attributes.dexterity = 2;
  TWPro.twpro_setBonus.set_quackery[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_quackery[3].bonus.skills.endurance = 10;
  TWPro.twpro_setBonus.set_quackery[3].bonus.skills.trade = 10;
  TWPro.twpro_setBonus.set_quackery[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[3].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_quackery[3].jobBonus.quackery = 60;
  TWPro.twpro_setBonus.set_quackery[3].speedBonus = 0;
  TWPro.twpro_setBonus.set_quackery[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[4] = new Object();
  TWPro.twpro_setBonus.set_quackery[4].bonus = new Object();
  TWPro.twpro_setBonus.set_quackery[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_quackery[4].bonus.attributes.dexterity = 4;
  TWPro.twpro_setBonus.set_quackery[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_quackery[4].bonus.skills.endurance = 15;
  TWPro.twpro_setBonus.set_quackery[4].bonus.skills.trade = 15;
  TWPro.twpro_setBonus.set_quackery[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[4].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_quackery[4].jobBonus.quackery = 90;
  TWPro.twpro_setBonus.set_quackery[4].speedBonus = 0;
  TWPro.twpro_setBonus.set_quackery[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[5] = new Object();
  TWPro.twpro_setBonus.set_quackery[5].bonus = new Object();
  TWPro.twpro_setBonus.set_quackery[5].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_quackery[5].bonus.attributes.dexterity = 6;
  TWPro.twpro_setBonus.set_quackery[5].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_quackery[5].bonus.skills.endurance = 20;
  TWPro.twpro_setBonus.set_quackery[5].bonus.skills.trade = 20;
  TWPro.twpro_setBonus.set_quackery[5].jobBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[5].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_quackery[5].jobBonus.quackery = 120;
  TWPro.twpro_setBonus.set_quackery[5].speedBonus = 0;
  TWPro.twpro_setBonus.set_quackery[5].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[6] = new Object();
  TWPro.twpro_setBonus.set_quackery[6].bonus = new Object();
  TWPro.twpro_setBonus.set_quackery[6].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_quackery[6].bonus.attributes.dexterity = 9;
  TWPro.twpro_setBonus.set_quackery[6].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_quackery[6].bonus.skills.tough = 18;
  TWPro.twpro_setBonus.set_quackery[6].bonus.skills.endurance = 20;
  TWPro.twpro_setBonus.set_quackery[6].bonus.skills.reflex = 18;
  TWPro.twpro_setBonus.set_quackery[6].bonus.skills.aim = 18;
  TWPro.twpro_setBonus.set_quackery[6].bonus.skills.shot = 18;
  TWPro.twpro_setBonus.set_quackery[6].bonus.skills.trade = 20;
  TWPro.twpro_setBonus.set_quackery[6].jobBonus = new Object();
  TWPro.twpro_setBonus.set_quackery[6].jobBonus.all = 0;
  TWPro.twpro_setBonus.set_quackery[6].jobBonus.quackery = 120;
  TWPro.twpro_setBonus.set_quackery[6].speedBonus = 0;
  TWPro.twpro_setBonus.set_quackery[6].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_dancer = new Array();
  TWPro.twpro_setBonus.set_dancer[2] = new Object();
  TWPro.twpro_setBonus.set_dancer[2].bonus = new Object();
  TWPro.twpro_setBonus.set_dancer[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_dancer[2].bonus.attributes.charisma = 2;
  TWPro.twpro_setBonus.set_dancer[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_dancer[2].bonus.skills.appearance = 10;
  TWPro.twpro_setBonus.set_dancer[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_dancer[2].jobBonus.all = 10;
  TWPro.twpro_setBonus.set_dancer[2].speedBonus = 0;
  TWPro.twpro_setBonus.set_dancer[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_dancer[3] = new Object();
  TWPro.twpro_setBonus.set_dancer[3].bonus = new Object();
  TWPro.twpro_setBonus.set_dancer[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_dancer[3].bonus.attributes.charisma = 5;
  TWPro.twpro_setBonus.set_dancer[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_dancer[3].bonus.skills.animal = 10;
  TWPro.twpro_setBonus.set_dancer[3].bonus.skills.appearance = 10;
  TWPro.twpro_setBonus.set_dancer[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_dancer[3].jobBonus.all = 25;
  TWPro.twpro_setBonus.set_dancer[3].speedBonus = 0;
  TWPro.twpro_setBonus.set_dancer[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_dancer[4] = new Object();
  TWPro.twpro_setBonus.set_dancer[4].bonus = new Object();
  TWPro.twpro_setBonus.set_dancer[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_dancer[4].bonus.attributes.charisma = 9;
  TWPro.twpro_setBonus.set_dancer[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_dancer[4].bonus.skills.finger_dexterity = 10;
  TWPro.twpro_setBonus.set_dancer[4].bonus.skills.animal = 10;
  TWPro.twpro_setBonus.set_dancer[4].bonus.skills.appearance = 10;
  TWPro.twpro_setBonus.set_dancer[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_dancer[4].jobBonus.all = 45;
  TWPro.twpro_setBonus.set_dancer[4].speedBonus = 0;
  TWPro.twpro_setBonus.set_dancer[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman = new Array();
  TWPro.twpro_setBonus.set_gentleman[2] = new Object();
  TWPro.twpro_setBonus.set_gentleman[2].bonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[2].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_gentleman[2].bonus.attributes.charisma = 1;
  TWPro.twpro_setBonus.set_gentleman[2].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_gentleman[2].bonus.skills.appearance = 8;
  TWPro.twpro_setBonus.set_gentleman[2].jobBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[2].jobBonus.all = 5;
  TWPro.twpro_setBonus.set_gentleman[2].speedBonus = 0;
  TWPro.twpro_setBonus.set_gentleman[2].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[3] = new Object();
  TWPro.twpro_setBonus.set_gentleman[3].bonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[3].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_gentleman[3].bonus.attributes.charisma = 3;
  TWPro.twpro_setBonus.set_gentleman[3].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_gentleman[3].bonus.skills.leadership = 8;
  TWPro.twpro_setBonus.set_gentleman[3].bonus.skills.appearance = 8;
  TWPro.twpro_setBonus.set_gentleman[3].jobBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[3].jobBonus.all = 15;
  TWPro.twpro_setBonus.set_gentleman[3].speedBonus = 0;
  TWPro.twpro_setBonus.set_gentleman[3].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[4] = new Object();
  TWPro.twpro_setBonus.set_gentleman[4].bonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[4].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_gentleman[4].bonus.attributes.charisma = 6;
  TWPro.twpro_setBonus.set_gentleman[4].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_gentleman[4].bonus.skills.leadership = 8;
  TWPro.twpro_setBonus.set_gentleman[4].bonus.skills.trade = 8;
  TWPro.twpro_setBonus.set_gentleman[4].bonus.skills.appearance = 8;
  TWPro.twpro_setBonus.set_gentleman[4].jobBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[4].jobBonus.all = 30;
  TWPro.twpro_setBonus.set_gentleman[4].speedBonus = 0;
  TWPro.twpro_setBonus.set_gentleman[4].parsedBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[5] = new Object();
  TWPro.twpro_setBonus.set_gentleman[5].bonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[5].bonus.attributes = new Object();
  TWPro.twpro_setBonus.set_gentleman[5].bonus.attributes.charisma = 10;
  TWPro.twpro_setBonus.set_gentleman[5].bonus.skills = new Object();
  TWPro.twpro_setBonus.set_gentleman[5].bonus.skills.leadership = 8;
  TWPro.twpro_setBonus.set_gentleman[5].bonus.skills.trade = 8;
  TWPro.twpro_setBonus.set_gentleman[5].bonus.skills.appearance = 16;
  TWPro.twpro_setBonus.set_gentleman[5].jobBonus = new Object();
  TWPro.twpro_setBonus.set_gentleman[5].jobBonus.all = 50;
  TWPro.twpro_setBonus.set_gentleman[5].speedBonus = 0;
  TWPro.twpro_setBonus.set_gentleman[5].parsedBonus = new Object();
  TWPro.twpro_invHash = '';
  TWPro.twpro_itemStorage = new Object();
  while(TWPro.twpro_active)
  {
    //alert('// Original AjaxWindow.show:\n'+AjaxWindow.show.toString());
    //alert('// Original AjaxWindow.show:\n'+AjaxWindow.show.toString());
    //alert('// Original Wear.add:\n'+Wear.add.toString());
    //alert('// Original Wear.uncarry:\n'+Wear.uncarry.toString());
    //alert('// Original Bag.getInstance().add:\n'+Bag.getInstance().add.toString());
    //alert('// Original Bag.getInstance().carry:\n'+Bag.getInstance().carry.toString());
    //for(var twpro_i = 0; twpro_i < ItemPopup.prototype.getXHTML.toString().length; twpro_i += 2000)
    //{
    //  alert(((twpro_i == 0)?('// Original ItemPopup.prototype.getXHTML:\n'):(''))+ItemPopup.prototype.getXHTML.toString().substr(twpro_i,2000));
    //}
    var twpro_matchtest;
    if(AjaxWindow.show.toString().search(/evalJS/) == -1)
    {
      if((AjaxWindow.show.toString().search(/if *\(data\.page *!= *undefined\) *{/) == -1) || (AjaxWindow.show.toString().search(/eval\(data\.js\);/) == -1))
      {
        TWPro.twpro_failureInject = true;
        break;
      }
      TWPro.twpro_failureRollback.unshift('AjaxWindow.show = '+AjaxWindow.show.toString());
      eval('AjaxWindow.show = '+AjaxWindow.show.toString().replace(/if *\(data\.page *!= *undefined\) *{/,'if(data.page!=undefined){TWPro.twpro_injectionSwitch(extendeName,\'page\',data,null);').replace(/eval\(data\.js\);/,'TWPro.twpro_injectionSwitch(extendeName,\'js\',data,\'js\');eval(data.js);TWPro.twpro_injectionSwitch(extendeName,\'after\',data,null);'));
      //alert('// TW Pro AjaxWindow.show:\n'+AjaxWindow.show.toString());
    }
    else
    {
      if((AjaxWindow.show.toString().search(/if *\(data\.page *!= *undefined\) *{/) == -1) || (AjaxWindow.show.toString().search(/this\.evalJS\(\);/) == -1))
      {
        TWPro.twpro_failureInject = true;
        break;
      }
      TWPro.twpro_failureRollback.unshift('AjaxWindow.show = '+AjaxWindow.show.toString());
      eval('AjaxWindow.show = '+AjaxWindow.show.toString().replace(/if *\(data\.page *!= *undefined\) *{/,'if(data.page!=undefined){TWPro.twpro_injectionSwitch(extendeName,\'page\',data,null);').replace(/this\.evalJS\(\);/,'this.twpro_extendeName=extendeName;this.evalJS();'));
      //alert('// TW Pro AjaxWindow.show:\n'+AjaxWindow.show.toString());
      //alert('// Original Ajax.prototype.evalJS:\n'+Ajax.prototype.evalJS.toString());
      if(Ajax.prototype.evalJS.toString().search(/eval\(this\.jsContent\);/) == -1)
      {
        TWPro.twpro_failureInject = true;
        break;
      }
      TWPro.twpro_failureRollback.unshift('Ajax.prototype.evalJS = '+Ajax.prototype.evalJS.toString());
      eval('Ajax.prototype.evalJS = '+Ajax.prototype.evalJS.toString().replace(/eval\(this\.jsContent\);/,'TWPro.twpro_injectionSwitch(this.twpro_extendeName,\'js\',this,\'jsContent\');eval(this.jsContent);TWPro.twpro_injectionSwitch(this.twpro_extendeName,\'after\',this,null);'));
      //alert('// TW Pro Ajax.prototype.evalJS:\n'+Ajax.prototype.evalJS.toString());
    }
    if(Wear.add.toString().search(/}, *('*)over/) == -1)
    {
      TWPro.twpro_failureInject = true;
      break;
    }
    TWPro.twpro_failureRollback.unshift('Wear.add = '+Wear.add.toString());
    eval('Wear.add = '+Wear.add.toString().replace(/}, *('*)over/,'TWPro.twpro_changeItem();},$1over'));
    //alert('// TW Pro Wear.add:\n'+Wear.add.toString());
    if(Wear.uncarry.toString().search(/}\.bind/) == -1)
    {
      TWPro.twpro_failureInject = true;
      break;
    }
    TWPro.twpro_failureRollback.unshift('Wear.uncarry = '+Wear.uncarry.toString());
    eval('Wear.uncarry = '+Wear.uncarry.toString().replace(/}\.bind/,'TWPro.twpro_changeItem();}.bind'));
    //alert('// TW Pro Wear.uncarry:\n'+Wear.uncarry.toString());
    if(Bag.getInstance().add.toString().search(/}, *('*)over/) == -1)
    {
      TWPro.twpro_failureInject = true;
      break;
    }
    twpro_matchtest = Bag.getInstance().add.toString().match(/(["'])wear_["'] *\+ *item\.get_type\(\) *\+ *["']_highlight["']/g);
    if(twpro_matchtest == null)
    {
      TWPro.twpro_failureInject = true;
      break;
    }
    if(twpro_matchtest.length != 3)
    {
      TWPro.twpro_failureInject = true;
      break;
    }
    TWPro.twpro_failureRollback.unshift('Bag.getInstance().add = '+Bag.getInstance().add.toString());
    eval('Bag.getInstance().add = '+Bag.getInstance().add.toString().replace(/}, *('*)over/,'TWPro.twpro_changeItem();},$1over').replace(/(["'])wear_["'] *\+ *item\.get_type\(\) *\+ *["']_highlight["']/g,'(TWPro.twpro_activeJob())?($1$1):($1wear_$1+item.get_type()+$1_highlight$1)'));
    //alert('// TW Pro Bag.getInstance().add:\n'+Bag.getInstance().add.toString());
    if(Bag.getInstance().carry.toString().search(/return true;}\.bind/) == -1)
    {
      TWPro.twpro_failureInject = true;
      break;
    }
    TWPro.twpro_failureRollback.unshift('Bag.getInstance().carry = '+Bag.getInstance().carry.toString());
    eval('Bag.getInstance().carry = '+Bag.getInstance().carry.toString().replace(/return true;}\.bind/,'TWPro.twpro_changeItem();return true;}.bind'));
    //alert('// TW Pro Bag.getInstance().carry:\n'+Bag.getInstance().carry.toString());
    if(ItemPopup.prototype.getXHTML.toString().replace(/xhtml *\+= *(['"])<span class=(\\*)"item_popup_trader_price/) == -1)
    {
      TWPro.twpro_failureInject = true;
      break;
    }
    TWPro.twpro_failureRollback.unshift('ItemPopup.prototype.getXHTML = '+ItemPopup.prototype.getXHTML.toString());
    eval('ItemPopup.prototype.getXHTML = '+ItemPopup.prototype.getXHTML.toString().replace(/xhtml *\+= *(['"])<span class=(\\*)"item_popup_trader_price/,'xhtml+=TWPro.twpro_popup(item);xhtml+=$1<span class=$2"item_popup_trader_price'));
    //for(var twpro_i = 0; twpro_i < ItemPopup.prototype.getXHTML.toString().length; twpro_i += 2000)
    //{
    //  alert(((twpro_i == 0)?('// TW Pro ItemPopup.prototype.getXHTML:\n'):(''))+ItemPopup.prototype.getXHTML.toString().substr(twpro_i,2000));
    //}
    break;
  }
  TWPro.twpro_world = window.location.hostname.substr(0,window.location.hostname.search(/\./));
  var twpro_support = document.createElement('div');
  twpro_support.id = 'twpro_support';
  twpro_support.style = 'background:url("/images/main/bottom_slide_repeatx.png") repeat-x scroll center bottom transparent; cursor:default; float:left; height:14px; margin-left:6px; margin-right:6px; position:relative; top:12px;';
  /* 
	mainfootnoteautor.setAttribute('style','background:url("/images/main/bottom_slide_repeatx.png") repeat-x scroll center bottom transparent; cursor:default; float:left; height:14px; margin-left:6px; margin-right:6px; position:relative; top:12px;');
	mainfootnoteautor.innerHTML = "<div class=\"main_footnote_left\"></div><div class=\"main_footnote_right\"></div><div id=\"main_footnote_autor\">"+getAuthor()+"&nbsp;&nbsp;&nbsp;wersja:"+getMoCheckVersion()+"</div>"; */
  var twpro_supportLink = document.createElement('a');
  twpro_supportLink.id = 'twpro_supportLink';
  twpro_supportLink.href = 'http://www.tw-pro.de';
  twpro_supportLink.target = '_blank';
  twpro_supportLink.appendChild(document.createTextNode("Webseite"));
  var twpro_supportAuthor = document.createElement('a');
  twpro_supportAuthor.id = 'twpro_supportAuthor';
  if(TWPro.twpro_getAuthor())
  {
    twpro_supportAuthor.href = 'javascript:AjaxWindow.show(\'profile\',{char_id:9733},\'9733\');';
  }
  else
  {
    twpro_supportAuthor.href = 'http://www.tw-pro.de/index.php?site=kontakt';
    twpro_supportAuthor.target = '_blank';
  }
  twpro_supportAuthor.appendChild(document.createTextNode("NEXTON"));
  twpro_support.appendChild(document.createTextNode("TW Pro: "));
  twpro_support.appendChild(twpro_supportLink);
  twpro_support.appendChild(document.createTextNode(" Autor: "));
  twpro_support.appendChild(twpro_supportAuthor);
  if(!TWPro.twpro_active)
  {
    twpro_support.appendChild(document.createTextNode(" (global deaktiviert)"));
  }
  document.getElementById('main_container').appendChild(twpro_support);
  if(TWPro.twpro_failureInject)
  {
    TWPro.twpro_throwFailure();
  }
}

function twpro_throwFailure()
{
  if(TWPro.twpro_failure) return;
  TWPro.twpro_failure = true;
  for(var twpro_i=0;twpro_i<TWPro.twpro_failureRollback.length;twpro_i++)
  {
    eval(TWPro.twpro_failureRollback[twpro_i]);
  }
  document.getElementById('twpro_support').appendChild(document.createTextNode(" (deaktiviert durch Fehler)"));
}

function twpro_injectionSwitch(twpro_extendeName, twpro_injectionType, twpro_data, twpro_jsversion)
{
  if(TWPro.twpro_failure) return;
  if(twpro_extendeName==undefined)
  {
    //alert('Mist');
    return;
  }
  //alert(twpro_extendeName);
  switch(twpro_injectionType)
  {
    case 'page':
    {
      if(twpro_extendeName == 'inventory')
      {
        TWPro.twpro_insertList(twpro_data);
      }
      if(twpro_extendeName == 'settings')
      {
        //twpro_data.page = twpro_data.page.replace(/<img src="img\.php\?type=sig&amp;design=classic1&amp;player_id=(\d+)&time=(\d+)"/,'<img alt="" src="http://www.tw-pro.de/sig.php?server='+window.location.hostname+'&amp;player_id=$1&amp;time=$2" class="playerSignature" style="margin: 4px auto;"><input type="text" value="[url=http://www.tw-pro.de][img]http://www.tw-pro.de/sig.php?server='+window.location.hostname+'&amp;player_id=$1[/img][/url]" style="width: 468px; margin: 0 auto 4px 0;" onclick="this.focus(); this.select();" /><input type="text" value="&lt;a href=&quot;http://www.tw-pro.de&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.tw-pro.de/sig.php?server='+window.location.hostname+'&amp;player_id=$1&quot; /&gt;&lt;/a&gt;" style="width: 468px; margin: 0 auto 16px 0;" onclick="this.focus(); this.select();" /><img src="img.php?type=sig&amp;design=classic1&amp;player_id=$1&time=$2"');
        //for(var twpro_i = 0; twpro_i < twpro_data.page.length; twpro_i += 2000)
        //{
        //  alert(twpro_data.page.substr(twpro_i,2000));
        //}
      }
      break;
    }
    case 'js':
    {
      //alert(twpro_extendeName);
      if((twpro_extendeName == 'inventory') || (twpro_extendeName.substr(0,15) == 'building_tailor') || (twpro_extendeName.substr(0,17) == 'building_gunsmith') || (twpro_extendeName.substr(0,16) == 'building_general'))
      {
        TWPro.twpro_getPlace(twpro_data,twpro_extendeName,twpro_jsversion);
      }
      if(twpro_extendeName == 'settings')
      {
        //for(var twpro_i = 0; twpro_i < twpro_data[twpro_jsversion].length; twpro_i += 2000)
        //{
        //  alert(twpro_data[twpro_jsversion].substr(twpro_i,2000));
        //}
      }
      break;
    }
    case 'after':
    {
      if(twpro_extendeName == 'inventory')
      {
        TWPro.twpro_showList();
      }
      break;
    }
  }
}

function twpro_getAuthor()
{
  //if(TWPro.twpro_failure) return false;
  switch(TWPro.twpro_world)
  {
    case 'de1':
    case 'de2':
    case 'de3':
    case 'de4':
    case 'de5':
    case 'de6':
      return true;
  }
  return false;
}

function twpro_activeJob()
{
  if(TWPro.twpro_failure) return false;
  if((TWPro.twpro_calculated) && (document.getElementById("twpro_jobList")) && (document.getElementById("twpro_jobList").selectedIndex!=0))
  {
    return true;
  }
  else
  {
    return false;
  }
}

function twpro_getPlace(twpro_data,twpro_extendeName,twpro_jsversion)
{
  //alert('2: '+twpro_extendeName);
  if(TWPro.twpro_failure) return;
  if(twpro_extendeName=='inventory')
  {
    if(twpro_data[twpro_jsversion].search(/wear_content\[i\]\);(\s*)\}/) == -1)
    {
      //alert('1');
      TWPro.twpro_throwFailure();
      return;
    }
    if(twpro_data[twpro_jsversion].search(/bag_content\[i\]\);(\s*)\}/) == -1)
    {
      //alert('2');
      TWPro.twpro_throwFailure();
      return;
    }

    twpro_data[twpro_jsversion] = twpro_data[twpro_jsversion].replace(/wear_content\[i\]\);(\s*)\}/,'wear_content[i]);$1};TWPro.twpro_initializeItems(\'wear\',null);').replace(/bag_content\[i\]\);(\s*)\}/,'bag_content[i]);$1};TWPro.twpro_initializeItems(\'bag\',null);');
    //for(var twpro_i = 0; twpro_i < twpro_data[twpro_jsversion].length; twpro_i += 2000)
    //{
    //  alert(twpro_data[twpro_jsversion].substr(twpro_i,2000));
    //}
  }
  else
  {
    if(twpro_data[twpro_jsversion].search(/var trader_inv/) == -1)
    {
      //alert('3');
      TWPro.twpro_throwFailure();
      return;
    }
    if((twpro_data[twpro_jsversion].search(/trader_inv\[i\]\);(\s*)\}/) == -1) && (twpro_data[twpro_jsversion].search(/trader_inv\[i\], *(['"])(\w*)['"]\);(\s*)\}/) == -1))
    {
      //alert('4');
      TWPro.twpro_throwFailure();
      return;
    }
    //for(var twpro_i = 0; twpro_i < twpro_data[twpro_jsversion].length; twpro_i += 2000)
    //{
    //  alert(twpro_data[twpro_jsversion].substr(twpro_i,2000));
    //}
    twpro_data[twpro_jsversion] = twpro_data[twpro_jsversion].replace(/var trader_inv/,'TWPro.twpro_initializeItems(\'own\',playerInventory);var trader_inv').replace(/trader_inv\[i\]\);(\s*)\}/,'trader_inv[i]);$1};TWPro.twpro_initializeItems(\'trader\',traderInventory);').replace(/trader_inv\[i\], *(['"])(\w*)['"]\);(\s*)\}/,'trader_inv[i],$1$2$1);$3};TWPro.twpro_initializeItems(\'trader\',traderInventory);');
    //for(var twpro_i = 0; twpro_i < twpro_data[twpro_jsversion].length; twpro_i += 2000)
    //{
    //  alert(twpro_data[twpro_jsversion].substr(twpro_i,2000));
    //}
  }
}

// wird beim Erstellen eines Popups ausgefuehrt, stellt Code fuer diesen zusammen
function twpro_popup(twpro_item)
{
  if(TWPro.twpro_failure) return '';
  var twpro_xhtml = '';
  if(TWPro.twpro_calculated && (twpro_item.twpro_place!=undefined))
  {
    if((twpro_item.twpro_place=='wear') || (twpro_item.twpro_place=='bag'))
    {
      if(document.getElementById("twpro_jobList") && (document.getElementById("twpro_jobList").selectedIndex!=0))
      {
        var twpro_selectedJob = parseInt(document.getElementById("twpro_jobList")[document.getElementById("twpro_jobList").selectedIndex].value);
        if(twpro_selectedJob>=0)
        {
          var twpro_job = TWPro.twpro_jobs[twpro_selectedJob];
          if(twpro_item.twpro_bonus==undefined)
          {
            TWPro.twpro_prepareItem(twpro_item);
            if(twpro_item.twpro_bonus)
            {
              for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
              {
                twpro_item.twpro_jobbonus[TWPro.twpro_jobs[twpro_i].shortName] = TWPro.twpro_testItem(TWPro.twpro_jobs[twpro_i],twpro_item);
              }
            }
          }
          if(twpro_item.twpro_bonus)
          {
            var twpro_aktplus = twpro_item.twpro_jobbonus[TWPro.twpro_jobs[twpro_selectedJob].shortName];
            if(twpro_aktplus > 0)
            {
              twpro_xhtml+='<span class="item_popup_bonus">';
              twpro_xhtml+='+'+twpro_aktplus+' '+twpro_job.name;
              twpro_xhtml+='<br /></span><br />';
            }
          }
        }
      }
    }
    if(twpro_item.twpro_place=='trader')
    {
      if(twpro_item.twpro_bonus==undefined)
      {
        TWPro.twpro_prepareItem(twpro_item);
        if(twpro_item.twpro_bonus)
        {
          for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
          {
            twpro_item.twpro_jobbonus[TWPro.twpro_jobs[twpro_i].shortName] = TWPro.twpro_testItem(TWPro.twpro_jobs[twpro_i],twpro_item);
          }
        }
      }
      if(twpro_item.twpro_bonus)
      {
        var twpro_j = 0;
        var twpro_plus = new Array();
        var twpro_better;
        for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
        {
          twpro_better=twpro_item.twpro_jobbonus[TWPro.twpro_jobs[twpro_i].shortName]-TWPro.twpro_jobs[twpro_i].twpro_bestStats[twpro_item.type];
          if(twpro_better>0)
          {
            twpro_plus.push(twpro_better+' '+TWPro.twpro_jobs[twpro_i].name);
            twpro_j++;
          }
        }
        if(twpro_j>0)
        {
          twpro_plus.sort(TWPro.twpro_sortPlus);
          twpro_xhtml+='<span class="item_popup_bonus">';
          twpro_xhtml+='<table><tr><td>';
          for(var twpro_i=0;(twpro_i<twpro_plus.length)&&(twpro_i<33);twpro_i++)
          {
            twpro_xhtml+='<span style="white-space:nowrap;'
            if(TWPro.twpro_activeJob() && (twpro_plus[twpro_i].search(new RegExp(TWPro.twpro_jobs[parseInt(document.getElementById('twpro_jobList')[document.getElementById('twpro_jobList').selectedIndex].value)].name))!=-1))
            {
              twpro_xhtml+='color:rgb(78, 55, 7);';
            }
            twpro_xhtml+='">+'+twpro_plus[twpro_i]+'</span><br />';
            if(((twpro_j<=30) && (twpro_i==14)) || (((twpro_j>30) && (twpro_j<=33)) && (twpro_i==(Math.round(twpro_j/2)-1))) || ((twpro_j>33) && (twpro_i==16)))
            {
              twpro_xhtml+='</td><td>';
            }
          }
          if(twpro_i<twpro_plus.length)
          {
            twpro_xhtml+='...';
          }
          twpro_xhtml+='</td></tr></table>';
          twpro_xhtml+='</span><br />';
        }
      }
    }
  }
  return twpro_xhtml;
}

// fuegt Auswahlliste in das Inventar ein
function twpro_insertList(twpro_data)
{
  if(TWPro.twpro_failure) return;
  if(TWPro.twpro_jobsort==undefined)
  {
    TWPro.twpro_jobsort = 'name';
  }
  TWPro.twpro_bag = new Object();
  TWPro.twpro_bag.twpro_priceWear = 0;
  TWPro.twpro_bag.twpro_priceBag = 0;
  TWPro.twpro_bag.twpro_priceItems = 0;
  TWPro.twpro_bag.twpro_priceYields = 0;
  TWPro.twpro_bag.twpro_countType = new Object();
  TWPro.twpro_bag.twpro_types = new Array();
  TWPro.twpro_setItems = new Object();
  TWPro.twpro_setItemsCount = new Object();
  for(var twpro_set in TWPro.twpro_setBonus)
  {
    TWPro.twpro_setItemsCount[twpro_set] = 0;
  }
  TWPro.twpro_invHashTest = new Array();
  for(var twpro_type in Character.itemLevelRequirementDecrease)
  {
    if((twpro_type!='all') && (!isNaN(Character.itemLevelRequirementDecrease[twpro_type])))
    {
      TWPro.twpro_bag.twpro_types.push(twpro_type);
      TWPro.twpro_bag.twpro_countType[twpro_type] = 0;
    }
  }
  //alert(twpro_data.page);
  var twpro_xhtml = '<table id="twpro_jobDisplay" style="display: inline;position: absolute; visibility:hidden; margin-left:13px; top:5px;"><tr><td>';
  twpro_xhtml += '<a href="javascript:undefined;" onmouseup="TWPro.twpro_sortList(\'name\');" id="twpro_jobsort_link_name"><img id="twpro_jobsort_name" alt="" src="images/transparent.png" style="height: 17px;width: 20px;background-image: url(http://www.tw-pro.de/img/sort.png);background-position: '+((TWPro.twpro_jobsort == 'name')?('0px 0px'):('0px -17px'))+';" onmouseover="this.style.backgroundPosition=\'0px 0px\';" onmouseout="this.style.backgroundPosition=((TWPro.twpro_jobsort == \'name\')?(\'0px 0px\'):(\'0px -17px\'));"/></a>';
  twpro_xhtml += '<a href="javascript:undefined;" onmouseup="TWPro.twpro_sortList(\'erfahrung\');" id="twpro_jobsort_link_erfahrung"><img id="twpro_jobsort_erfahrung" alt="" src="images/transparent.png" style="height: 17px;width: 21px;background-image: url(http://www.tw-pro.de/img/sort.png);background-position: '+((TWPro.twpro_jobsort == 'erfahrung')?('-20px 0px'):('-20px -17px'))+';" onmouseover="this.style.backgroundPosition=\'-20px 0px\';" onmouseout="this.style.backgroundPosition=((TWPro.twpro_jobsort == \'erfahrung\')?(\'-20px 0px\'):(\'-20px -17px\'));"/></a>';
  twpro_xhtml += '<a href="javascript:undefined;" onmouseup="TWPro.twpro_sortList(\'lohn\');" id="twpro_jobsort_link_lohn"><img id="twpro_jobsort_lohn" alt="" src="images/transparent.png" style="height: 17px;width: 20px;background-image: url(http://www.tw-pro.de/img/sort.png);background-position: '+((TWPro.twpro_jobsort == 'lohn')?('-41px 0px'):('-41px -17px'))+';" onmouseover="this.style.backgroundPosition=\'-41px 0px\';" onmouseout="this.style.backgroundPosition=((TWPro.twpro_jobsort == \'lohn\')?(\'-41px 0px\'):(\'-41px -17px\'));"/></a>';
  twpro_xhtml += '<a href="javascript:undefined;" onmouseup="TWPro.twpro_sortList(\'glueck\');" id="twpro_jobsort_link_glueck"><img id="twpro_jobsort_glueck" alt="" src="images/transparent.png" style="height: 17px;width: 21px;background-image: url(http://www.tw-pro.de/img/sort.png);background-position: '+((TWPro.twpro_jobsort == 'glueck')?('-61px 0px'):('-61px -17px'))+';" onmouseover="this.style.backgroundPosition=\'-61px 0px\';" onmouseout="this.style.backgroundPosition=((TWPro.twpro_jobsort == \'glueck\')?(\'-61px 0px\'):(\'-61px -17px\'));"/></a>';
  twpro_xhtml += '<span id="twpro_aktuelleap" style="position:absolute;right:5px;visibility:hidden;"><span id="twpro_aktuelleapvalue" style="border-style:solid;border-width:1px;padding:2px;"></span> beim</span></td></tr><tr><td><select id="twpro_jobList" size="1" onchange="TWPro.twpro_changeJob()" onclick="TWPro.twpro_clickList()" style="background-color: rgb(207, 195, 166); font-size: 10px; width:135px;"><option value="-1" id="twpro_wait" style="background-color: rgb(207, 195, 166);">Obliczenia prac</option></select></td></tr></table>';
  //alert(twpro_xhtml);
  twpro_data.page = twpro_data.page.replace(/<h2(.*)">(.+)<\/h2>/,'<h2$1white-space: nowrap;"><span id="twpro_bag" style="cursor: default;">$2</span>'+twpro_xhtml+'</h2>');
  //alert(twpro_data.page);
}

function twpro_sortList(twpro_jobSortItem)
{
  if(TWPro.twpro_failure) return;
  TWPro.twpro_jobsort = twpro_jobSortItem;
  TWPro.twpro_jobSortMark(twpro_jobSortItem,true);
  if(twpro_jobSortItem != 'name')
  {
    TWPro.twpro_jobSortMark('name',false);
  }
  if(twpro_jobSortItem != 'erfahrung')
  {
    TWPro.twpro_jobSortMark('erfahrung',false);
  }
  if(twpro_jobSortItem != 'lohn')
  {
    TWPro.twpro_jobSortMark('lohn',false);
  }
  if(twpro_jobSortItem != 'glueck')
  {
    TWPro.twpro_jobSortMark('glueck',false);
  }
  if(TWPro.twpro_calculated && document.getElementById("twpro_jobList"))
  {
    if(document.getElementById('twpro_wait').text == 'Wybierz pracę')
    {
      document.getElementById('twpro_wait').text = 'Proszę czekać, trwają wyliczenia ...';
      var twpro_selectedJobName = 'none';
      if(document.getElementById("twpro_jobList").selectedIndex!=0)
      {
        var twpro_selectedJob = parseInt(document.getElementById("twpro_jobList")[document.getElementById("twpro_jobList").selectedIndex].value);
        if(twpro_selectedJob>=0)
        {
          twpro_selectedJobName = TWPro.twpro_jobs[twpro_selectedJob].shortName;
        }
      }
      document.getElementById("twpro_jobList").selectedIndex = 0;
      while(document.getElementById("twpro_jobList").lastChild.id != 'twpro_wait')
      {
        document.getElementById("twpro_jobList").removeChild(document.getElementById("twpro_jobList").lastChild);
      }
      TWPro.twpro_jobs.sort(TWPro.twpro_sortJobs);
      TWPro.twpro_insertListItems();
      for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
      {
        TWPro.twpro_jobs[twpro_i].twpro_jobid = twpro_i;
      }
      for(var twpro_i=0;twpro_i<document.getElementById("twpro_jobList").options.length;twpro_i++)
      {
        var twpro_jobTest = parseInt(document.getElementById("twpro_jobList").options[twpro_i].value);
        if(twpro_jobTest>=0)
        {
          if(twpro_selectedJobName == TWPro.twpro_jobs[twpro_jobTest].shortName)
          {
            document.getElementById("twpro_jobList").selectedIndex = twpro_i;
          }
        }
      }
      document.getElementById('twpro_wait').text = 'Wybierz pracę';
    }
    else
    {
      TWPro.twpro_jobs.sort(TWPro.twpro_sortJobs);
    }
  }
  document.getElementById('twpro_jobsort_link_'+twpro_jobSortItem).blur();
}

function twpro_jobSortMark(twpro_jobSortItem,twpro_jobSortValue)
{
  if(TWPro.twpro_failure) return;
  var twpro_bgposition = '';
  switch(twpro_jobSortItem)
  {
    case 'name':
    {
      twpro_bgposition += '0px';
      break;
    }
    case 'erfahrung':
    {
      twpro_bgposition += '-20px';
      break;
    }
    case 'lohn':
    {
      twpro_bgposition += '-41px';
      break;
    }
    case 'glueck':
    {
      twpro_bgposition += '-61px';
      break;
    }
  }
  twpro_bgposition += ' ';
  if(twpro_jobSortValue)
  {
    twpro_bgposition += '0px';
  }
  else
  {
    twpro_bgposition += '-17px';
  }
  document.getElementById('twpro_jobsort_'+twpro_jobSortItem).style.backgroundPosition = twpro_bgposition;
}

// macht die Liste sichtbar
function twpro_showList()
{
  if(TWPro.twpro_failure) return;
  $('twpro_jobsort_link_name').addMousePopup(new MousePopup('Sortuj po <b>Nazwie</b>',100,{opacity:0.95}));
  $('twpro_jobsort_link_erfahrung').addMousePopup(new MousePopup('Sortuj wg <b>Doświadczenia</b>',100,{opacity:0.95}));
  $('twpro_jobsort_link_lohn').addMousePopup(new MousePopup('Sortuj wg <b>Zarobku</b>',100,{opacity:0.95}));
  $('twpro_jobsort_link_glueck').addMousePopup(new MousePopup('Sortuj wg <b>Szczęścia</b>',100,{opacity:0.95}));
  TWPro.twpro_bag.twpro_bagPopup = new MousePopup('',100,{opacity:0.95});
  TWPro.twpro_bag.twpro_bagPopup.twpro_refresh = function(){this.setXHTML(TWPro.twpro_getBagPopup());};
  TWPro.twpro_bag.twpro_bagPopup.twpro_refresh();
  $('twpro_bag').addMousePopup(TWPro.twpro_bag.twpro_bagPopup);

  //TWPro.twpro_invHash = new Array();
  if(TWPro.twpro_invHash==TWPro.twpro_invHashTest.join(','))
  {
    for(var twpro_wear in Wear.wear)
    {
      TWPro.twpro_prepareItem(Wear.wear[twpro_wear].obj);
      if(Wear.wear[twpro_wear].obj.twpro_bonus)
      {
        Wear.wear[twpro_wear].obj.twpro_jobbonus = TWPro.twpro_itemStorage[Wear.wear[twpro_wear].obj.item_id].twpro_jobbonus;
//        for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
//        {
//          Wear.wear[twpro_wear].obj.twpro_jobbonus[TWPro.twpro_jobs[twpro_i].shortName] = TWPro.twpro_itemStorage[Wear.wear[twpro_wear].obj.item_id].twpro_jobbonus[TWPro.twpro_jobs[twpro_i].shortName];
//        }
      }
    }
    for(var twpro_bag in Bag.getInstance().items)
    {
      TWPro.twpro_prepareItem(Bag.getInstance().items[twpro_bag].obj);
      if(Bag.getInstance().items[twpro_bag].obj.twpro_bonus)
      {
        Bag.getInstance().items[twpro_bag].obj.twpro_jobbonus = TWPro.twpro_itemStorage[Bag.getInstance().items[twpro_bag].obj.item_id].twpro_jobbonus;
//        for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
//        {
//          Bag.getInstance().items[twpro_bag].obj.twpro_jobbonus[TWPro.twpro_jobs[twpro_i].shortName] = TWPro.twpro_itemStorage[Bag.getInstance().items[twpro_bag].obj.item_id].twpro_jobbonus[TWPro.twpro_jobs[twpro_i].shortName];
//        }
      }
    }
    TWPro.twpro_insertListItems();
    document.getElementById('twpro_wait').text = 'Wybierz pracę';
  }
  document.getElementById('twpro_jobDisplay').style.visibility = 'visible';
}

function twpro_getBagPopup()
{
  if(TWPro.twpro_failure) return '';
  var twpro_xhtml='';
  twpro_xhtml+='<div class="item_popup">';
  twpro_xhtml+='<span class="item_popup_title">Statystyki ekwipunku</span>';
  twpro_xhtml+='<span class="item_popup_requirement_text">Wartość sprzedaży:</span>';
  twpro_xhtml+='<table>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Aktualnie założone:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_priceWear+' $</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Plecak:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_priceBag+' $</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Ilość:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_priceItems+' $</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Produkty:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_priceYields+' $</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Wartość RAZEM:&nbsp;&nbsp;</td>';
  var twpro_all1 = parseInt(TWPro.twpro_bag.twpro_priceWear) + parseInt(TWPro.twpro_bag.twpro_priceBag);
  twpro_xhtml+='<td class="item_popup_trader_price">'+twpro_all1+' $</td></tr>';
  twpro_xhtml+='</table>';
  twpro_xhtml+='<span class="item_popup_requirement_text">Ilości:</span>';
  twpro_xhtml+='<table>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Nakrycia głowy:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_countType['head']+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Naszyjniki:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_countType['neck']+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Bronie:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_countType['right_arm']+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Odzież:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_countType['body']+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Obuwie:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_countType['foot']+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Inwentarz:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_countType['animal']+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Ilość ekwipunku:&nbsp;&nbsp;</td>';
  var twpro_all=TWPro.twpro_bag.twpro_countType['head']+TWPro.twpro_bag.twpro_countType['neck']+TWPro.twpro_bag.twpro_countType['right_arm']+TWPro.twpro_bag.twpro_countType['body']+TWPro.twpro_bag.twpro_countType['foot']+TWPro.twpro_bag.twpro_countType['animal'];
  twpro_xhtml+='<td class="item_popup_trader_price">'+twpro_all+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Produkty:&nbsp;&nbsp;</td>';
  twpro_xhtml+='<td class="item_popup_trader_price">'+TWPro.twpro_bag.twpro_countType['yield']+'</td></tr>';
  twpro_xhtml+='<tr><td class="item_popup_trader_price">Ilość RAZEM:&nbsp;&nbsp;</td>';
  var twpro_all2 = parseInt(twpro_all) + parseInt(TWPro.twpro_bag.twpro_countType['yield']);
  twpro_xhtml+='<td class="item_popup_trader_price">'+twpro_all2+'</td></tr>';
  twpro_xhtml+='</table>';
  twpro_xhtml+='</div>';
  return twpro_xhtml;
}

// wird beim draufklicken auf die Liste ausgefuehrt, stoesst Berechnungen an
function twpro_clickList()
{
  if(TWPro.twpro_failure) return;
  if(document.getElementById('twpro_wait').text != 'Proszę czekać, trwają wyliczenia ...' && document.getElementById('twpro_wait').text != 'Wybierz pracę')
  {
    document.getElementById('twpro_wait').text = 'Proszę czekać, trwają wyliczenia ...';
    window.setTimeout("TWPro.twpro_updateList()", 0);
  }
}

// stellt alle Jobs zusammen und fuegt einzelne Listenelemente ein
function twpro_updateList()
{
  if(TWPro.twpro_failure) return;
  if(!TWPro.twpro_calculated)
  {
    var twpro_jobCount = 0;
    for(var twpro_job in JobList)
    {
      TWPro.twpro_jobs[parseInt(twpro_job)]=JobList[twpro_job];
      TWPro.twpro_jobs[parseInt(twpro_job)].twpro_calculation = TWPro.twpro_jobs[parseInt(twpro_job)].formular.replace(/skills\./g,'Character.skills.');
      twpro_jobCount++;
    }
    TWPro.twpro_jobs[TWPro.twpro_jobs.length]=new Object();
    TWPro.twpro_jobs[TWPro.twpro_jobs.length-1].twpro_calculation='3 * Character.skills.build + 1 * Character.skills.repair + 1 * Character.skills.leadership';
    TWPro.twpro_jobs[TWPro.twpro_jobs.length-1].malus=0;
    TWPro.twpro_jobs[TWPro.twpro_jobs.length-1].name='Stadtausbau';
    TWPro.twpro_jobs[TWPro.twpro_jobs.length-1].shortName='construct';
    twpro_jobCount++;
    TWPro.twpro_jobs.sort(TWPro.twpro_sortJobs);
    while(TWPro.twpro_jobs.length>twpro_jobCount)
    {
      TWPro.twpro_jobs.pop();
    }
  }
  TWPro.twpro_calculateJobs();
  TWPro.twpro_insertListItems();
  document.getElementById('twpro_wait').text = 'Wybierz pracę';
}

function twpro_insertListItems()
{
  if(TWPro.twpro_failure) return;
  var twpro_jobList = document.getElementById('twpro_jobList');
  var twpro_jobElement;
  var twpro_apstmp;
  for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
  {
    twpro_apstmp = TWPro.twpro_jobs[twpro_i].twpro_aps;
    if((TWPro.twpro_jobs[twpro_i].shortName=='construct') && (Character.characterClass=='worker'))
    {
      twpro_apstmp = Math.floor(twpro_apstmp*1.05);
    }
    twpro_jobElement = document.createElement('option');
    twpro_jobElement.value = twpro_i;
    twpro_jobElement.appendChild(document.createTextNode(((TWPro.twpro_jobs[twpro_i].name.length>25)?(TWPro.twpro_jobs[twpro_i].name.substr(0,23)+'...'):(TWPro.twpro_jobs[twpro_i].name)) + ' (' + twpro_apstmp + ' PP)'));
    if(twpro_apstmp > 0)
    {
      twpro_jobElement.style.backgroundColor='rgb(160, 218, 120)';
    }
    else
    {
      twpro_jobElement.style.backgroundColor='rgb(232, 150, 120)';
    }
    twpro_jobList.appendChild(twpro_jobElement);
  }
}

// bestimmt Sortierreihenfolge der Jobs in der Liste
function twpro_sortJobs(twpro_a,twpro_b)
{
  if(TWPro.twpro_failure) return 0;
  var twpro_a_str = twpro_a.name.toLowerCase().replace(/\xE4/g,'a').replace(/\xF6/g,'o').replace(/\xFC/g,'u').replace(/\xDF/g,'ss');
  var twpro_b_str = twpro_b.name.toLowerCase().replace(/\xE4/g,'a').replace(/\xF6/g,'o').replace(/\xFC/g,'u').replace(/\xDF/g,'ss');
  if(TWPro.twpro_jobsort == 'name')
  {
    return (twpro_a_str==twpro_b_str)?(0):((twpro_a_str>twpro_b_str)?(1):(-1));
  }
  else
  {
    return (TWPro.twpro_jobValues[twpro_a.shortName][TWPro.twpro_jobsort] == TWPro.twpro_jobValues[twpro_b.shortName][TWPro.twpro_jobsort])?((twpro_a_str==twpro_b_str)?(0):((twpro_a_str>twpro_b_str)?(1):(-1))):(TWPro.twpro_jobValues[twpro_b.shortName][TWPro.twpro_jobsort] - TWPro.twpro_jobValues[twpro_a.shortName][TWPro.twpro_jobsort]);
  }
}

function twpro_sortPlus(twpro_a,twpro_b)
{
  if(TWPro.twpro_failure) return 0;
  var twpro_a_num = parseInt(twpro_a.substring(0,twpro_a.search(/ /)));
  var twpro_b_num = parseInt(twpro_b.substring(0,twpro_b.search(/ /)));
  return twpro_b_num - twpro_a_num;
}

function twpro_initializeItems(twpro_place,twpro_itemlist)
{
  if(TWPro.twpro_failure) return;
  var twpro_i = 0;
  if(twpro_place=='wear')
  {
    for(var twpro_wear in Wear.wear)
    {
      Wear.wear[twpro_wear].obj.twpro_place = twpro_place;
      Wear.wear[twpro_wear].obj.twpro_html = document.getElementById('char_'+Wear.wear[twpro_wear].obj.type);
      TWPro.twpro_bag.twpro_priceWear+=Wear.wear[twpro_wear].obj.sell_price;
      TWPro.twpro_bag.twpro_countType[Wear.wear[twpro_wear].obj.type]++;
      if(Wear.wear[twpro_wear].obj.type=='yield')
      {
        TWPro.twpro_bag.twpro_priceYields+=Wear.wear[twpro_wear].obj.sell_price;
      }
      else
      {
        TWPro.twpro_bag.twpro_priceItems+=Wear.wear[twpro_wear].obj.sell_price;
      }
      if((Wear.wear[twpro_wear].obj.set!=null) && (TWPro.twpro_setItems[Wear.wear[twpro_wear].obj.item_id]==undefined))
      {
        TWPro.twpro_setItems[Wear.wear[twpro_wear].obj.item_id] = Wear.wear[twpro_wear].obj;
        TWPro.twpro_setItemsCount[Wear.wear[twpro_wear].obj.set.key]++;
      }
      if(TWPro.twpro_invHashTest[Wear.wear[twpro_wear].obj.item_id]==undefined)
      {
        TWPro.twpro_invHashTest[Wear.wear[twpro_wear].obj.item_id]=1;
      }
    }
  }
  if(twpro_place=='bag')
  {
    var twpro_itemcount;
    for(var twpro_bag in Bag.getInstance().items)
    {
      Bag.getInstance().items[twpro_bag].obj.twpro_place = twpro_place;
      Bag.getInstance().items[twpro_bag].obj.twpro_html = Bag.getInstance().items[twpro_bag].bag_item;
      if(Bag.getInstance().items[twpro_bag].count_text)
      {
        twpro_itemcount = parseInt(Bag.getInstance().items[twpro_bag].count_text.firstChild.data);
      }
      else
      {
        twpro_itemcount = 1;
      }
      TWPro.twpro_bag.twpro_priceBag+=twpro_itemcount*Bag.getInstance().items[twpro_bag].obj.sell_price;
      TWPro.twpro_bag.twpro_countType[Bag.getInstance().items[twpro_bag].obj.type]+=twpro_itemcount;
      if(Bag.getInstance().items[twpro_bag].obj.type=='yield')
      {
        TWPro.twpro_bag.twpro_priceYields+=twpro_itemcount*Bag.getInstance().items[twpro_bag].obj.sell_price;
      }
      else
      {
        TWPro.twpro_bag.twpro_priceItems+=twpro_itemcount*Bag.getInstance().items[twpro_bag].obj.sell_price;
      }
      if((Bag.getInstance().items[twpro_bag].obj.set!=null) && (TWPro.twpro_setItems[Bag.getInstance().items[twpro_bag].obj.item_id]==undefined))
      {
        TWPro.twpro_setItems[Bag.getInstance().items[twpro_bag].obj.item_id] = Bag.getInstance().items[twpro_bag].obj;
        TWPro.twpro_setItemsCount[Bag.getInstance().items[twpro_bag].obj.set.key]++;
      }
      if(TWPro.twpro_invHashTest[Bag.getInstance().items[twpro_bag].obj.item_id]==undefined)
      {
        TWPro.twpro_invHashTest[Bag.getInstance().items[twpro_bag].obj.item_id]=1;
      }
    }
  }
  if(twpro_place=='trader')
  {
    for(var twpro_obj in twpro_itemlist.items)
    {
      twpro_itemlist.items[twpro_obj].obj.twpro_place = twpro_place;
      twpro_itemlist.items[twpro_obj].obj.twpro_html = twpro_itemlist.items[twpro_obj].bag_item;
      twpro_itemlist.items[twpro_obj].popup.refresh();
      twpro_i++;
    }
  }
  if(twpro_place=='own')
  {
    for(var twpro_obj in twpro_itemlist.data)
    {
      twpro_itemlist.data[twpro_obj].twpro_place = twpro_place;
      twpro_i++;
    }
    for(var twpro_bag in twpro_itemlist.bags)
    {
      for(var twpro_obj in twpro_itemlist.bags[twpro_bag].items)
      {
        twpro_itemlist.bags[twpro_bag].items[twpro_obj].obj.twpro_html = twpro_itemlist.bags[twpro_bag].items[twpro_obj].bag_item;
      }
    }
  }
}

// ermittelt die optimalen Kleidungsstuecke und errechnet die resultierenden Arbeitspunkte
function twpro_calculateJobs()
{
  if(TWPro.twpro_failure) return;
  var twpro_setitembonus;
  var twpro_setitemjobname;
  for(var twpro_wear in Wear.wear)
  {
    TWPro.twpro_prepareItem(Wear.wear[twpro_wear].obj);
  }
  for(var twpro_bag in Bag.getInstance().items)
  {
    TWPro.twpro_prepareItem(Bag.getInstance().items[twpro_bag].obj);
  }
  TWPro.twpro_calculated = false;
  TWPro.twpro_setItemsCalc = new Object();
  TWPro.twpro_setItemsEffect = false;
  for(var twpro_i=0;twpro_i<TWPro.twpro_bag.twpro_types.length;twpro_i++)
  {
    TWPro.twpro_setItemsCalc[TWPro.twpro_bag.twpro_types[twpro_i]] = new Array(null);
  }
  TWPro.twpro_setCount = new Object();
  for(var twpro_setItemId in TWPro.twpro_setItems)
  {
    var twpro_setItem = TWPro.twpro_setItems[twpro_setItemId];
    if(twpro_setItem.twpro_wearable && (TWPro.twpro_setItemsCount[twpro_setItem.set.key]>=2))
    {
      TWPro.twpro_setItemsCalc[twpro_setItem.type].push(twpro_setItem);
      TWPro.twpro_setCount[twpro_setItem.set.key] = 0;
      TWPro.twpro_setItemsEffect = true;
    }
  }
  for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
  {
    var twpro_job = TWPro.twpro_jobs[twpro_i];
    twpro_job.twpro_jobid = twpro_i;
    twpro_job.twpro_skill = eval(twpro_job.twpro_calculation);
    twpro_job.twpro_skills = twpro_job.twpro_calculation.replace(/ \+ \d+$/,'');
    twpro_job.twpro_attributes = twpro_job.twpro_skills;
    for(var twpro_attname in Character.skill_names)
    {
      for(var twpro_j=0;twpro_j<Character.skill_names[twpro_attname].length;twpro_j++)
      {
        twpro_job.twpro_attributes = twpro_job.twpro_attributes.replace(new RegExp('\\.'+Character.skill_names[twpro_attname][twpro_j],'g'),'.'+twpro_attname);
      }
    }
    if(TWPro.twpro_setItemsEffect && (!TWPro.twpro_setBonusParsed))
    {
      for(var twpro_itemSet in TWPro.twpro_setBonus)
      {
        var twpro_itemSetBouns = TWPro.twpro_setBonus[twpro_itemSet];
        for(var twpro_j=2;twpro_j<twpro_itemSetBouns.length;twpro_j++)
        {
          twpro_setitembonus = twpro_itemSetBouns[twpro_j];
          twpro_setitemjobname = twpro_job.shortName;
          twpro_setitembonus.parsedBonus[twpro_setitemjobname] = twpro_setitembonus.jobBonus.all + ((twpro_setitembonus.jobBonus[twpro_setitemjobname]==undefined)?(0):(twpro_setitembonus.jobBonus[twpro_setitemjobname])) + TWPro.twpro_testItem(twpro_job,twpro_setitembonus);
        }
      }
    }
    twpro_job.twpro_bestStats = new Object();
    for(var twpro_j=0;twpro_j<TWPro.twpro_bag.twpro_types.length;twpro_j++)
    {
      twpro_job.twpro_bestStats[TWPro.twpro_bag.twpro_types[twpro_j]] = 0;
    }
    for(var twpro_wear in Wear.wear)
    {
      TWPro.twpro_compareItem(twpro_job,Wear.wear[twpro_wear].obj);
    }
    for(var twpro_bag in Bag.getInstance().items)
    {
      TWPro.twpro_compareItem(twpro_job,Bag.getInstance().items[twpro_bag].obj);
    }
    twpro_job.twpro_aps = twpro_job.twpro_skill - twpro_job.malus;
    for(var twpro_type in twpro_job.twpro_bestStats)
    {
      twpro_job.twpro_aps += twpro_job.twpro_bestStats[twpro_type];
    }
    if(TWPro.twpro_setItemsEffect)
    {
      var twpro_setItem;
      twpro_job.twpro_parsedItemBonus = new Object();
      twpro_job.twpro_bestCombi = new Object();
      for(var twpro_type in twpro_job.twpro_bestStats)
      {
        twpro_job.twpro_bestCombi[twpro_type] = 0;
        for(var twpro_j=1;twpro_j<TWPro.twpro_setItemsCalc[twpro_type].length;twpro_j++)
        {
          twpro_setItem = TWPro.twpro_setItemsCalc[twpro_type][twpro_j];
          twpro_job.twpro_parsedItemBonus[twpro_setItem.item_id] = TWPro.twpro_testItem(twpro_job,twpro_setItem);
        }
      }
      twpro_job.twpro_noSetAps = twpro_job.twpro_aps;
    }
  }
  if(TWPro.twpro_setItemsEffect)
  {
    TWPro.twpro_calcSets();
  }
  TWPro.twpro_setBonusParsed = true;
  TWPro.twpro_invHash = TWPro.twpro_invHashTest.join(',');
  TWPro.twpro_calculated = true;
}

function twpro_calcSets()
{
  var twpro_testCombi = new Object();
  for(var twpro_i=0;twpro_i<TWPro.twpro_bag.twpro_types.length;twpro_i++)
  {
    twpro_testCombi[TWPro.twpro_bag.twpro_types[twpro_i]] = 0;
  }
  var twpro_setCounter = TWPro.twpro_setCount;
  TWPro.twpro_testnextvalid = new Array();
  var twpro_testnextvalid = TWPro.twpro_testnextvalid;
  TWPro.twpro_testnextnamen = new Object();
  var twpro_testnextnamen = TWPro.twpro_testnextnamen;
  for(var twpro_set in twpro_setCounter)
  {
    twpro_testnextnamen[twpro_set] = twpro_testnextvalid.push(0)-1;
  }
  var twpro_next = false;
  var twpro_set;
  do
  {
    for(var twpro_i=0;twpro_i<TWPro.twpro_jobs.length;twpro_i++)
    {
      var twpro_job = TWPro.twpro_jobs[twpro_i];
      var twpro_testAps = twpro_job.twpro_noSetAps;
      for(var twpro_type in twpro_testCombi)
      {
        if(twpro_testCombi[twpro_type]!=0)
        {
          twpro_testAps -= twpro_job.twpro_bestStats[twpro_type];
          var twpro_setItem = TWPro.twpro_setItemsCalc[twpro_type][twpro_testCombi[twpro_type]];
          twpro_testAps += twpro_job.twpro_parsedItemBonus[twpro_setItem.item_id];
        }
      }
      for(var twpro_set in twpro_setCounter)
      {
        if(twpro_setCounter[twpro_set]>0)
        {
          twpro_testAps += TWPro.twpro_setBonus[twpro_set][twpro_setCounter[twpro_set]].parsedBonus[twpro_job.shortName];
        }
      }
      if(twpro_testAps > twpro_job.twpro_aps)
      {
        twpro_job.twpro_aps = twpro_testAps;
        for(var twpro_type in twpro_testCombi)
        {
          twpro_job.twpro_bestCombi[twpro_type] = twpro_testCombi[twpro_type];
        }
      }
    }
    do
    {
      TWPro.anzahl3++;
      twpro_next = false;
      for(var twpro_type in twpro_testCombi)
      {
        var twpro_setItemsCalcType = TWPro.twpro_setItemsCalc[twpro_type];
        var twpro_testCombiType = twpro_testCombi[twpro_type];
        if(twpro_testCombiType!=0)
        {
          twpro_set = twpro_setItemsCalcType[twpro_testCombiType].set.key;
          if((--twpro_setCounter[twpro_set])==1)
          {
            twpro_testnextvalid[twpro_testnextnamen[twpro_set]] = 1;
          }
          else
          {
            twpro_testnextvalid[twpro_testnextnamen[twpro_set]] = 0;
          }
        }
        if((twpro_testCombiType+1) < twpro_setItemsCalcType.length)
        {
          twpro_set = twpro_setItemsCalcType[++twpro_testCombi[twpro_type]].set.key;
          if((++twpro_setCounter[twpro_set])==1)
          {
            twpro_testnextvalid[twpro_testnextnamen[twpro_set]] = 1;
          }
          else
          {
            twpro_testnextvalid[twpro_testnextnamen[twpro_set]] = 0;
          }
          twpro_next = true;
          break;
        }
        else
        {
          twpro_testCombi[twpro_type] = 0;
        }
      }
    }
    while((parseInt(twpro_testnextvalid.join(''),10)>0) && twpro_next);
  }
  while(twpro_next);
}

function twpro_prepareItem(twpro_item)
{
  if(TWPro.twpro_failure) return;
  var twpro_storedItem;
  if(TWPro.twpro_itemStorage[twpro_item.item_id] == undefined)
  {
    TWPro.twpro_itemStorage[twpro_item.item_id] = new Object();
    twpro_storedItem = TWPro.twpro_itemStorage[twpro_item.item_id];
  }
  else
  {
    twpro_storedItem = TWPro.twpro_itemStorage[twpro_item.item_id];
    if(twpro_item.twpro_bonus = twpro_storedItem.twpro_bonus)
    {
      twpro_item.twpro_jobbonus = new Object();
    }
    twpro_item.twpro_wearable = twpro_storedItem.twpro_wearable;
    return;
  }
  var twpro_i = 0;
  if(twpro_item.bonus.skills.length==undefined)
  {
    for(var twpro_skillname in twpro_item.bonus.skills)
    {
      twpro_i++;
    }
  }
  if(twpro_item.bonus.attributes.length==undefined)
  {
    for(var twpro_attname in twpro_item.bonus.attributes)
    {
      twpro_i++;
    }
  }
  if(twpro_i>0)
  {
    twpro_item.twpro_bonus = true;
    twpro_item.twpro_jobbonus = new Object();
    twpro_storedItem.twpro_jobbonus = new Object();
  }
  else
  {
    twpro_item.twpro_bonus = false;
  }
  twpro_item.twpro_wearable = TWPro.twpro_wearItem(twpro_item);
  twpro_storedItem.twpro_bonus = twpro_item.twpro_bonus;
  twpro_storedItem.twpro_wearable = twpro_item.twpro_wearable;
}

function twpro_wearItem(twpro_item)
{
  if(TWPro.twpro_failure) return false;
  if((twpro_item.characterClass!=null) && (twpro_item.characterClass!=Character.characterClass))
  {
    return false;
  }
  if((twpro_item.level!=null) && ((twpro_item.level-Character.itemLevelRequirementDecrease[twpro_item.type]-Character.itemLevelRequirementDecrease['all'])>Character.level))
  {
    return false;
  }
  if((twpro_item.characterSex!=null) && ((twpro_item.characterSex!=Character.characterSex) || (Character.characterClass=='greenhorn')))
  {
    return false;
  }
  return true;
}

function twpro_compareItem(twpro_job,twpro_item)
{
  if(TWPro.twpro_failure) return;
  var twpro_aktplus = TWPro.twpro_testItem(twpro_job,twpro_item);
  if(twpro_item.twpro_bonus)
  {
    twpro_item.twpro_jobbonus[twpro_job.shortName] = twpro_aktplus;
    TWPro.twpro_itemStorage[twpro_item.item_id].twpro_jobbonus[twpro_job.shortName] = twpro_aktplus;
  }
  if((twpro_aktplus>=twpro_job.twpro_bestStats[twpro_item.type]) && twpro_item.twpro_wearable)
  {
    twpro_job.twpro_bestStats[twpro_item.type] = twpro_aktplus;
  }
}

function twpro_testItem(twpro_job,twpro_item)
{
  if(TWPro.twpro_failure) return 0;
  if((!twpro_item.twpro_bonus) && (twpro_item.jobBonus==undefined))
  {
    return 0;
  }
  if(TWPro.twpro_itemStorage[twpro_item.item_id] != undefined)
  {
    if(TWPro.twpro_itemStorage[twpro_item.item_id].twpro_jobbonus[twpro_job.shortName] != undefined)
    {
      return TWPro.twpro_itemStorage[twpro_item.item_id].twpro_jobbonus[twpro_job.shortName];
    }
  }
  var twpro_aktskills = twpro_job.twpro_skills;
  var twpro_aktattributes = twpro_job.twpro_attributes;
  for(var twpro_skillname in twpro_item.bonus.skills)
  {
    twpro_aktskills = twpro_aktskills.replace(new RegExp('Character\\.skills\\.'+twpro_skillname,'g'),twpro_item.bonus.skills[twpro_skillname]);
  }
  twpro_aktskills = twpro_aktskills.replace(new RegExp('Character\\.skills\\.\\w+','g'),'0');
  for(var twpro_attname in twpro_item.bonus.attributes)
  {
    twpro_aktattributes = twpro_aktattributes.replace(new RegExp('Character\\.skills\\.'+twpro_attname,'g'),twpro_item.bonus.attributes[twpro_attname]);
  }
  twpro_aktattributes = twpro_aktattributes.replace(new RegExp('Character\\.skills\\.\\w+','g'),'0');
  return eval(twpro_aktskills)+eval(twpro_aktattributes);
}

function twpro_changeItem()
{
  if(TWPro.twpro_failure) return;
  TWPro.twpro_bag.twpro_priceWear = 0;
  TWPro.twpro_bag.twpro_priceBag = 0;
  TWPro.twpro_bag.twpro_priceItems = 0;
  TWPro.twpro_bag.twpro_priceYields = 0;
  TWPro.twpro_setItems = new Object();
  for(var twpro_set in TWPro.twpro_setBonus)
  {
    TWPro.twpro_setItemsCount[twpro_set] = 0;
  }
  for(var twpro_i=0;twpro_i<TWPro.twpro_bag.twpro_types.length;twpro_i++)
  {
    TWPro.twpro_bag.twpro_countType[TWPro.twpro_bag.twpro_types[twpro_i]] = 0;
  }
  //TWPro.twpro_invHash = new Array();
  TWPro.twpro_initializeItems('wear',null);
  TWPro.twpro_initializeItems('bag',null);
  TWPro.twpro_bag.twpro_bagPopup.twpro_refresh();
  TWPro.twpro_changeJob();
}

function twpro_changeJob()
{
  if(TWPro.twpro_failure) return;
  if(TWPro.twpro_calculated)
  {
    var twpro_jobList = document.getElementById('twpro_jobList');
    var twpro_selected = twpro_jobList.selectedIndex;
    twpro_jobList.style.backgroundColor = twpro_jobList[twpro_selected].style.backgroundColor;
    var twpro_selectedJob = parseInt(twpro_jobList[twpro_selected].value);
    for(var twpro_i=0;twpro_i<TWPro.twpro_bag.twpro_types.length;twpro_i++)
    {
      if(document.getElementById('char_'+TWPro.twpro_bag.twpro_types[twpro_i]))
      {
        document.getElementById('char_'+TWPro.twpro_bag.twpro_types[twpro_i]).className = 'wear_'+TWPro.twpro_bag.twpro_types[twpro_i];
      }
    }
    for(var twpro_wear in Wear.wear)
    {
      Wear.wear[twpro_wear].popup.refresh();
    }
    for(var twpro_bag in Bag.getInstance().items)
    {
      Bag.getInstance().items[twpro_bag].popup.refresh();
      Bag.getInstance().items[twpro_bag].obj.twpro_html.firstChild.className = '';
    }
    if(twpro_selectedJob>=0)
    {
      var twpro_job = TWPro.twpro_jobs[twpro_selectedJob];
      TWPro.twpro_highlight(twpro_job);
      var twpro_aktuelleap = twpro_job.twpro_skill - twpro_job.malus;
      var twpro_setCounter = new Object();
      for(var twpro_wear in Wear.wear)
      {
        if(Wear.wear[twpro_wear].obj.twpro_bonus)
        {
          twpro_aktuelleap += Wear.wear[twpro_wear].obj.twpro_jobbonus[twpro_job.shortName];
        }
        if(Wear.wear[twpro_wear].obj.set != null)
        {
          if(twpro_setCounter[Wear.wear[twpro_wear].obj.set.key]==undefined)
          {
            twpro_setCounter[Wear.wear[twpro_wear].obj.set.key] = 1;
          }
          else
          {
            twpro_setCounter[Wear.wear[twpro_wear].obj.set.key]++;
          }
        }
      }
      for(var twpro_set in twpro_setCounter)
      {
        if(twpro_setCounter[twpro_set]>=2)
        {
          twpro_aktuelleap += TWPro.twpro_setBonus[twpro_set][twpro_setCounter[twpro_set]].parsedBonus[twpro_job.shortName];
        }
      }
      if((twpro_job.shortName=='construct') && (Character.characterClass=='worker'))
      {
        twpro_aktuelleap = Math.floor(twpro_aktuelleap*1.05);
      }
      document.getElementById('twpro_aktuelleapvalue').innerHTML = twpro_aktuelleap+' PP';
      if(twpro_aktuelleap > 0)
      {
        if(twpro_aktuelleap >= twpro_job.twpro_aps)
        {
          document.getElementById('twpro_aktuelleapvalue').style.backgroundColor = 'rgb(160, 218, 120)';
        }
        else
        {
          document.getElementById('twpro_aktuelleapvalue').style.backgroundColor = 'rgb(230, 235, 108)';
        }
      }
      else
      {
        document.getElementById('twpro_aktuelleapvalue').style.backgroundColor = 'rgb(232, 150, 120)';
      }
      document.getElementById('twpro_aktuelleap').style.visibility = 'visible';
    }
    else
    {
      document.getElementById('twpro_aktuelleap').style.visibility = 'hidden';
    }
  }
}

function twpro_highlight(twpro_job)
{
  if(TWPro.twpro_failure) return;
  for(var twpro_wear in Wear.wear)
  {
    var twpro_item = Wear.wear[twpro_wear].obj;
    if(TWPro.twpro_setItemsEffect && (twpro_job.twpro_bestCombi[twpro_item.type] > 0))
    {
      if(TWPro.twpro_setItemsCalc[twpro_item.type][twpro_job.twpro_bestCombi[twpro_item.type]].item_id == twpro_item.item_id)
      {
        twpro_item.twpro_html.className=twpro_item.twpro_html.className+' wear_'+twpro_item.type+'_highlight';
      }
    }
    else
    {
      if((twpro_item.twpro_wearable) && ((twpro_item.type=='animal') || ((twpro_item.twpro_bonus==false) && (twpro_job.twpro_bestStats[twpro_item.type]==0)) || ((twpro_item.twpro_bonus==true) && (twpro_item.twpro_jobbonus[twpro_job.shortName]>=twpro_job.twpro_bestStats[twpro_item.type]))))
      {
        twpro_item.twpro_html.className=twpro_item.twpro_html.className+' wear_'+twpro_item.type+'_highlight';
      }
    }
  }
  for(var twpro_bag in Bag.getInstance().items)
  {
    var twpro_item = Bag.getInstance().items[twpro_bag].obj;
    if(TWPro.twpro_setItemsEffect && (twpro_job.twpro_bestCombi[twpro_item.type] > 0))
    {
      if(TWPro.twpro_setItemsCalc[twpro_item.type][twpro_job.twpro_bestCombi[twpro_item.type]].item_id == twpro_item.item_id)
      {
        twpro_item.twpro_html.firstChild.className='wear_yield_highlight';
      }
    }
    else
    {
      if((twpro_item.twpro_wearable) && ((twpro_item.type!='animal') && ((((twpro_item.type=='yield') || (twpro_item.type=='right_arm')) && (twpro_item.twpro_bonus==true) && (twpro_job.twpro_bestStats[twpro_item.type]>0) && (twpro_item.twpro_jobbonus[twpro_job.shortName]>=twpro_job.twpro_bestStats[twpro_item.type])) || ((twpro_item.type!='yield') && (twpro_item.type!='right_arm') && (((twpro_item.twpro_bonus==false) && (twpro_job.twpro_bestStats[twpro_item.type]==0)) || ((twpro_item.twpro_bonus==true) && (twpro_item.twpro_jobbonus[twpro_job.shortName]>=twpro_job.twpro_bestStats[twpro_item.type])))))))
      {
        twpro_item.twpro_html.firstChild.className='wear_yield_highlight';
      }
    }
  }
}

var twpro_scriptelement = document.createElement('script');
twpro_scriptelement.type='text/javascript';
twpro_scriptelement.text = 'if(window.TWPro==undefined)\n';
twpro_scriptelement.text += '{\n';
twpro_scriptelement.text += '  window.TWPro = new Object();\n';
twpro_scriptelement.text += '  TWPro.twpro_injectScript = '+twpro_injectScript.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_throwFailure = '+twpro_throwFailure.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_injectionSwitch = '+twpro_injectionSwitch.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_getAuthor = '+twpro_getAuthor.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_activeJob = '+twpro_activeJob.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_getPlace = '+twpro_getPlace.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_initializeItems = '+twpro_initializeItems.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_popup = '+twpro_popup.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_insertList = '+twpro_insertList.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_showList = '+twpro_showList.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_getBagPopup = '+twpro_getBagPopup.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_clickList = '+twpro_clickList.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_updateList = '+twpro_updateList.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_sortJobs = '+twpro_sortJobs.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_sortList = '+twpro_sortList.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_insertListItems = '+twpro_insertListItems.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_jobSortMark = '+twpro_jobSortMark.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_sortPlus = '+twpro_sortPlus.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_calculateJobs = '+twpro_calculateJobs.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_calcSets = '+twpro_calcSets.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_prepareItem = '+twpro_prepareItem.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_compareItem = '+twpro_compareItem.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_wearItem = '+twpro_wearItem.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_testItem = '+twpro_testItem.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_changeItem = '+twpro_changeItem.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_changeJob = '+twpro_changeJob.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_highlight = '+twpro_highlight.toString()+'\n';
twpro_scriptelement.text += '  TWPro.twpro_injectScript();\n';
twpro_scriptelement.text += '}';
document.body.appendChild(twpro_scriptelement);

/************************************************************************************************************************************/